Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment implémenter des associations polymorphes dans une base de données existante

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