Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come implementare associazioni polimorfiche in un database esistente

Puoi usare l'opzione 1 ma senza una chiave alternativa surrogata aggiuntiva.

Invece, estendi la chiave primaria esistente (di ciascuna entità), con un EntityType colonna (diciamo CHAR(1) , sarebbe E per Eventi, P per le Persone, D per i Prodotti).

Il composto (EntityId, EntityType) diventerà quindi la Chiave Primaria della tabella Entity e i composti corrispondenti nelle altre 3 tabelle dei sottotipi.

(Il EntityType è solo una tabella ausiliaria, di riferimento, con 3 righe):