Question

Dans les relations maître-détail, font des tables-détail contiennent des colonnes d'identité?

Ou, devrait-il?

Dans la base de données Northwind, OrderDetail n'a pas une colonne d'identité.

Était-ce utile?

La solution

Toute table de données que vous avez qui contient quelque chose que vous voulez être en mesure de récupérer doit toujours contenir une clé primaire - c'est c'est l'emploi principal:. Identifier de manière unique une seule ligne

Tout simplement parce que les détails appartiennent à une ligne maître ne veut pas dire qu'ils sont des lignes de données non complètes eux-mêmes -. Ils doivent être identifiés d'une certaine façon

Alors oui - je recommande une table de détail pour avoir une certaine forme d'une clé primaire ( « ID »). Que ce soit en quelque sorte connecté au maître-ID ou est quelque chose de pas que vous pourriez décider au cas par cas -. Mais il devait être un moyen d'identifier chaque ligne de détails indépendamment en quelque sorte

Si vous avez une table de lien pour un M: N relation, généralement, vous auriez seulement les deux colonnes de clé étrangère (pour les tables 1 et 2) là-dedans. C'est généralement assez bon, car la combinaison de ces deux FK est unique.

La seule raison d'ajouter une pièce d'identité distincte à une telle table serait si vous avez besoin d'ajouter des pièces supplémentaires d'information qui décrivent la relation en soi. Mais même alors, tant que le (key1, key2) combinaison est unique, qui est généralement assez bon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top