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