Puoi usare l'opzione 1 ma senza una chiave alternativa surrogata aggiuntiva.
Invece, estendi la chiave primaria esistente (di ciascuna entità), con un EntityType
colonna (diciamo CHAR(1)
, sarebbe E
per Eventi, P
per le Persone, D
per i Prodotti).
Il composto (EntityId, EntityType)
diventerà quindi la Chiave Primaria della tabella Entity
e i composti corrispondenti nelle altre 3 tabelle dei sottotipi.
(Il EntityType
è solo una tabella ausiliaria, di riferimento, con 3 righe):