Sous-types : un dilemme dans la conception de bases de données
Dans le domaine de la conception de bases de données, la question du sous-typage se pose lorsqu'il s'agit d'entités qui partagent des points communs caractéristiques, mais présentent également des attributs uniques. Considérons un scénario dans lequel vous disposez de trois tables : LIVRES, ARTICLES et NOTES. Chaque livre ou article peut avoir plusieurs notes.
Conception originale : une table NOTES unifiée
La conception initiale a opté pour une table NOTES unifiée avec les éléments suivants columns :
Dans ce schéma, note_type indique si le note est associée à un livre ou à un article, tandis que note_type_id sert de clé étrangère au entité respective.
Conception alternative : tables NOTES séparées
Une approche alternative suggère de diviser les NOTES en tables distinctes tableaux :
Cette conception sépare les notes spécifiques au livre et à l'article, introduisant des tableaux supplémentaires pour créer des liens vers les entités correspondantes.
Évaluer le Options
Les deux modèles ont leurs mérites. La table NOTES unifiée offre la simplicité et élimine le besoin de tables supplémentaires. Cependant, la conception alternative offre une séparation plus claire et un potentiel d'extensibilité future.
Une perspective supertype/sous-type
Envisagez d'adopter une approche supertype/sous-type, où la PUBLICATION sert de supertype pour les LIVRES et ARTICLES. Cela permet d'avoir une table NOTE unique et partagée avec une clé étrangère vers PUBLICATION. Cette structure permet une récupération transparente des notes, qu'elles soient associées à un livre ou à un article.
Avantages de la conception supertype/sous-type :
Exemple de structure :
TABLE 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!