Maison >base de données >tutoriel mysql >L'héritage de sous-type doit-il être utilisé pour gérer les notes liées aux livres et aux articles dans une base de données ?
Conception de base de données : avantages et limites de l'héritage de sous-type
Dans la conception de bases de données, décider d'utiliser ou non l'héritage de sous-type peut être une décision cruciale qui a un impact normalisation et flexibilité des données. Explorons les avantages et les inconvénients de l'utilisation de l'héritage de sous-type dans le contexte d'un schéma avec des livres, des articles et des notes.
Conception originale avec table « Notes » partagée
Initialement, la conception comprenait trois tableaux principaux : « LIVRES », « ARTICLES » et « NOTES ». Les notes sur les livres et les articles étaient stockées dans la table « NOTES », avec des colonnes comprenant « note_id », « note_type », « note_type_id » et « note_content ». Cette conception nécessitait une opération JOIN entre 'NOTES' et 'BOOKS' ou 'ARTICLES' pour récupérer des notes spécifiques.
Conception alternative avec des tables séparées
Comme alternative , le concepteur a proposé de créer cinq tableaux distincts : "BOOKS", "ARTICLES", "NOTES", "BOOK_NOTES" et 'ARTICLE_NOTES.' Cette conception isole les notes sur les livres et les articles dans des tableaux distincts, chaque tableau contenant une clé étrangère vers le « BOOK_ID » ou « ARTICLE_ID » correspondant.
Comparaison des approches
La conception originale avec une table 'NOTES' partagée offre l'avantage de la simplicité et d'une redondance réduite des données. Cependant, cette méthode peut devenir moins efficace à mesure que le nombre de notes augmente, en particulier si les requêtes se concentrent sur des notes liées à un seul type de publication (par exemple, des livres ou des articles).
La conception alternative avec des tableaux séparés améliore l'organisation des données. et élimine le besoin de JOIN pour récupérer des notes pour un type de publication spécifique. Cependant, il introduit une redondance des données, car les notes sont stockées à la fois dans la table 'NOTES' et dans les tables 'BOOK_NOTES' ou 'ARTICLE_NOTES' correspondantes.
Héritage de supertype/sous-type comme compromis
Bien que l'héritage de sous-type soit souvent utilisé lorsque les sous-types ont des colonnes hautement spécialisées, ce n'est peut-être pas l'idéal solution pour ce scénario. Au lieu de cela, l'approche suivante est proposée :
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!