Maison  >  Article  >  base de données  >  Une clé étrangère peut-elle référencer plusieurs tables dans une base de données relationnelle ?

Une clé étrangère peut-elle référencer plusieurs tables dans une base de données relationnelle ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-23 23:10:29224parcourir

Can a Foreign Key Reference Multiple Tables in a Relational Database?

Une clé étrangère peut-elle pointer vers plusieurs tables ?

La définition de contraintes de clé étrangère implique généralement la sélection d'une seule table cible. Cependant, dans le cadre de relations polymorphes, une seule table peut avoir des connexions avec plusieurs autres tables.

Relations polymorphes et clés étrangères

Dans les relations polymorphes, une table ( par exemple, images) entretient une relation avec l'une des nombreuses autres tables (par exemple, subordonnés ou produits). Ceci est réalisé grâce à une colonne (person_type) qui identifie la table spécifique vers laquelle la clé étrangère doit pointer.

Réponse

Malheureusement, non. Les contraintes de clé étrangère autorisent uniquement les références à une seule table parent. Cela signifie que vous ne pouvez pas créer une clé étrangère pointant vers plusieurs tables simultanément.

Alternatives

Cependant, il existe des moyens de simuler ce comportement en utilisant d'autres techniques, telles que :

  • Colonnes discriminatrices : Ajoutez une colonne à la table parent qui identifie le type de table enfant.
  • Tables d'union : Créer une seule table qui contient les données combinées de toutes les tables associées.

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!

Déclaration:
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