"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Une clé étrangère peut-elle référencer plusieurs tables dans des associations polymorphes ?

Une clé étrangère peut-elle référencer plusieurs tables dans des associations polymorphes ?

Publié le 2024-11-16
Parcourir:991

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

Clés étrangères polymorphes : une clé étrangère peut-elle référencer plusieurs tables ?

Le concept de clés étrangères dans les bases de données relationnelles implique généralement de spécifier la cible exacte table vers laquelle une colonne de référence doit pointer. Cependant, lorsqu'il s'agit d'associations polymorphes, où une table a une relation avec plusieurs autres tables d'un ensemble, la question se pose : est-il possible d'avoir une clé étrangère pouvant référencer l'une de ces tables ?

La réponse : non

Dans MySQL et PostgreSQL, une contrainte de clé étrangère ne peut faire référence qu'à une seule table parent. Cette contrainte garantit l'intégrité des données en maintenant une relation claire entre les lignes de référencement et les lignes référencées dans la table parent.

Alternatives aux associations polymorphes

Puisqu'une clé étrangère ne peut pas pointent directement vers plusieurs tables, des solutions alternatives sont nécessaires pour modéliser les associations polymorphes :

  • Héritage joint : Créer une table unique contenant toutes les colonnes des tables enfants et une colonne discriminatrice pour identifier à quelle table appartient chaque ligne.
  • Tableau par classe Hiérarchie : Créez des tables distinctes pour chaque table enfant et établissez des relations entre elles par héritage.
  • Types d'union : Utilisez une seule colonne pouvant accueillir des valeurs de données de différents domaines, ce qui lui permet de référencer plusieurs tables enfants.

Ressources supplémentaires

Pour plus d'informations sur les associations polymorphes et leurs solutions, reportez-vous aux ressources suivantes :

  • Modèles pratiques orientés objet dans SQL
  • Antipatterns SQL, Volume 1 : Éviter les pièges de la programmation de bases de données
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729692085. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3