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):