U zou optie 1 kunnen gebruiken, maar zonder een extra surrogaatalternatieve sleutel.
Breid in plaats daarvan de bestaande primaire sleutel (van elke entiteit) uit met een EntityType
kolom (zeg CHAR(1)
, dat zou E
. zijn voor Evenementen, P
voor personen, D
voor producten).
De samengestelde (EntityId, EntityType)
wordt dan de primaire sleutel van tabel Entity
en de overeenkomstige verbindingen in de andere 3 subtypetabellen.
(Het EntityType
is slechts een hulp, referentietabel, met 3 rijen):