Maison > base de données > tutoriel mysql > Une clé étrangère vers plusieurs tables est-elle possible dans les bases de données relationnelles ?

Une clé étrangère vers plusieurs tables est-elle possible dans les bases de données relationnelles ?

DDD
Libérer: 2024-10-24 03:58:30
original
837 Les gens l'ont consulté

Is a Foreign Key to Multiple Tables Possible in Relational Databases?

Clé étrangère vers une table parmi plusieurs : est-ce possible ?

Dans les bases de données relationnelles, les clés étrangères sont utilisées pour établir des relations entre les tables. En règle générale, une clé étrangère dans une table pointe vers une clé primaire dans une autre table. Cependant, la question se pose : une clé étrangère peut-elle faire référence à l'une de plusieurs tables ?

La réponse : Non

Une contrainte de clé étrangère fait toujours référence à exactement une table parent. Cela signifie qu'il n'est pas possible de définir une clé étrangère pointant vers l'une des nombreuses tables possibles. Ce comportement est le même dans MySQL et PostgreSQL.

Implications pour les relations polymorphes

Les relations polymorphes sont celles dans lesquelles une table peut avoir une relation avec l'une parmi plusieurs autres tables. Dans l'exemple fourni, la table « images » a une relation avec l'une des deux tables : « subordonnés » ou « produits ».

Dans de tels cas, il n'est pas possible de créer directement une clé étrangère pointant vers soit des « subordonnés », soit des « produits ». Au lieu de cela, une table de jointure doit être explicitement définie pour établir la relation. La table de jointure contient les clés étrangères des « subordonnés » et des « produits », et la table « images » contient ensuite une clé étrangère faisant référence à la table de jointure.

Ressources supplémentaires

Pour approfondir ce sujet, consultez les ressources suivantes :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal