Maison > base de données > tutoriel mysql > Les contraintes de clé étrangère peuvent-elles référencer plusieurs tables ?

Les contraintes de clé étrangère peuvent-elles référencer plusieurs tables ?

Mary-Kate Olsen
Libérer: 2024-10-24 05:42:02
original
722 Les gens l'ont consulté

Can Foreign Key Constraints Reference Multiple Tables?

Contraintes de clé étrangère polymorphes : référencement de plusieurs tables

Dans le domaine de la conception de bases de données, les contraintes de clé étrangère établissent des relations entre les tables, garantissant ainsi l'intégrité des données en connectant les enregistrements entre les tables. Traditionnellement, les clés étrangères pointent vers une seule table spécifique. Cependant, la question se pose : est-il possible de créer une clé étrangère qui référence une table parmi plusieurs ?

Pour comprendre ce concept, considérons une relation polymorphe entre une table et un ensemble de tables. Dans un tel scénario, une table peut être liée à n’importe laquelle d’un groupe de tables. Par exemple, considérons trois tables :

  • images : person_id, person_type
  • subordonnés : id, col1, col2...col9
  • products: id, colA, colB...colZ

Dans cet exemple, si la colonne person_type de la table images contient "subordonnés", alors person_id doit être une clé étrangère faisant référence à subordonnés.id. De même, si person_type est "products", alors person_id doit faire référence à products.id.

La réponse : impossible pour une seule clé étrangère

Après un examen attentif, cela devient Il est clair qu'il n'est pas possible d'avoir une seule contrainte de clé étrangère faisant référence à plusieurs tables. Une contrainte de clé étrangère cible toujours précisément une table parent. Par conséquent, si un champ nécessite de référencer plusieurs tables en fonction d'une condition, des solutions alternatives doivent être explorées.

Ressources supplémentaires pour le polymorphisme

Pour une compréhension plus approfondie des associations polymorphes, envisagez d'explorer les ressources suivantes :

  • Présentation : Modèles orientés objet pratiques en SQL
  • Livre : SQL Antipatterns, Volume 1 : Éviter les pièges de la programmation de bases de donné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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal