Możesz użyć Opcji 1, ale bez dodatkowego zastępczego klucza zastępczego.
Zamiast tego rozszerz istniejący klucz podstawowy (każdej encji) za pomocą EntityType
kolumna (powiedz CHAR(1)
, czyli E
dla wydarzeń, P
dla osób, D
dla produktów).
Złożony (EntityId, EntityType)
stanie się wtedy kluczem podstawowym tabeli Entity
i odpowiednie związki w pozostałych 3 tabelach podtypów.
(EntityType
to tylko pomocnicza tabela referencyjna z 3 wierszami):