Vous pouvez utiliser l'option 1 mais sans clé alternative de substitution supplémentaire.
Au lieu de cela, étendez la clé primaire existante (de chaque entité), avec un EntityType colonne (dire CHAR(1) , ce serait E pour les événements, P pour les personnes, D pour les produits).
Le composé (EntityId, EntityType) deviendra alors la Clé Primaire de la table Entity et les composés correspondants dans les 3 autres tableaux de sous-types.
(Le EntityType n'est qu'une table auxiliaire, de référence, à 3 lignes) :
