Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie man polymorphe Assoziationen in einer bestehenden Datenbank implementiert

Sie könnten Option 1 verwenden, jedoch ohne einen zusätzlichen alternativen Ersatzschlüssel.

Erweitern Sie stattdessen den vorhandenen Primärschlüssel (jeder Entität) mit einem EntityType Spalte (z. B. CHAR(1)). , das wäre E für Ereignisse P für Personen, D für Produkte).

Die Verbindung (EntityId, EntityType) wird dann zum Primärschlüssel der Tabelle Entity und die entsprechenden Verbindungen in den anderen 3 Subtypentabellen.

(Der EntityType ist nur eine Hilfs-Referenztabelle mit 3 Zeilen):