Maison > base de données > tutoriel mysql > Dois-je utiliser des sous-types ou une table unique avec une colonne discriminatrice pour les relations avec la base de données ?

Dois-je utiliser des sous-types ou une table unique avec une colonne discriminatrice pour les relations avec la base de données ?

Linda Hamilton
Libérer: 2024-12-31 01:41:12
original
364 Les gens l'ont consulté

Should I Use Subtypes or a Single Table with a Discriminator Column for Database Relationships?

Conception de sous-types pour les relations entre les tables de base de données

Lors de la conception d'un schéma de base de données, une considération clé est de déterminer s'il convient ou non d'utiliser des sous-types. Dans le contexte de la programmation orientée objet, les sous-types sont des classes dérivées qui héritent des propriétés et des méthodes d'un supertype ou d'une classe parent. Dans une base de données, ce concept peut être appliqué aux relations entre les tables.

Dans le scénario donné, la base de données comporte trois tables principales : LIVRES, ARTICLES et REMARQUES. Chaque livre ou article peut avoir plusieurs notes, et la conception originale proposait une seule table NOTES avec une colonne discriminatrice appelée note_type pour faire la distinction entre les notes de livre et les notes d'article. Cependant, cette approche peut entraîner des problèmes d'intégrité des données et une redondance.

Une approche alternative suggérée dans la question consiste à utiliser cinq tableaux :

  • LIVRES
  • ARTICLES
  • NOTES
  • BOOK_NOTES
  • ARTICLE_NOTES

Ceci La conception sépare les notes de livre et d'article dans des tableaux distincts, éliminant ainsi le besoin d'une colonne discriminatrice. Bien que cette approche garantisse l'intégrité des données, elle introduit également une duplication puisque la table NOTES est répliquée à la fois pour les livres et les articles.

Envisagez une approche alternative : utiliser une conception supertype/sous-type avec une table de supertype appelé PUBLICATION et tables de sous-types pour LIVRES et ARTICLES. Dans ce scénario, la table PUBLICATION contiendrait des colonnes communes aux livres et aux articles, tandis que les tables de sous-types contiendraient des colonnes spécifiques à chaque type.

PUBLICATION {

  • ID (PK)

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.cn
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