Maison > base de données > tutoriel mysql > Sous-type ou supertype : quelle conception de base de données gère le mieux les données polymorphes ?

Sous-type ou supertype : quelle conception de base de données gère le mieux les données polymorphes ?

Mary-Kate Olsen
Libérer: 2024-12-26 09:42:10
original
244 Les gens l'ont consulté

Subtype or Supertype: Which Database Design Best Handles Polymorphic Data?

Sous-type vs supertype pour la conception de bases de données

Contexte

Dans la conception de bases de données, la décision se pose d'utiliser ou non des sous-types. Les sous-types sont utilisés lorsqu'un type spécifique de données possède des attributs ou des propriétés supplémentaires qui le distinguent des autres types. Cette approche consiste à créer des tables distinctes pour chaque sous-type, conduisant à un nombre potentiellement important de tables.

Exemple : Notes sur les livres et les articles

Considérons une base de données avec trois tables principales : BOOKS, ARTICLES, et REMARQUES. Chaque livre et article peut avoir plusieurs notes. La conception initiale attribuait des notes à une seule table NOTES avec des colonnes :

  • note_id
  • note_type
  • note_type_id
  • note_content

Conception alternative utilisant des tables séparées

Une conception alternative propose d'utiliser cinq tableaux :

  • livres
  • articles
  • notes
  • book_notes
  • article_notes

Cette conception permet de séparer les notes de livre et d'article, simplifiant ainsi les données. gestion.

Avantages et inconvénients de chaque conception

Avantages de la conception de sous-types (conception existante) :

  • Simplifie le stockage des données en consolidant les notes dans un seul tableau.
  • Évite冗余 en stockant uniquement les notes une fois.
  • Nécessite moins de jointures pour la récupération des données.

Inconvénients de la conception des sous-types :

  • Peut entraîner des anomalies de données car les types de notes peuvent changer.
  • Peut être complexe à gérer si les types de notes proliférer.

Avantages de la conception de supertype (conception alternative) :

  • Promeut l'intégrité des données en définissant explicitement les relations de supertype et de sous-type.
  • Permet d'ajouter facilement de nouveaux types de publications (par exemple, des magazines).
  • Fournit un représentation plus claire de la hiérarchie et des relations des données.

Approche supertype/sous-type

Une approche modifiée suggère d'utiliser une table de publication de supertype avec deux sous-types : Livre et Article. Ce modèle permettrait une seule table Note avec une clé étrangère vers la publication, permettant des jointures entre tous les types de publication (livre, article, magazine, etc.).

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