Supposons une base de données avec trois tables: Author
, Articles
, Comments
Comment savoir quelle est la conception de base de données la plus appropriée? (auteurs, articles et commentaires)
Si l'on suppose que la relation est la suivante:
Author has many Articles
Article belongs to one Author
Article has many Comments
Comment belongs to one Article
Si je veux savoir quel auteur écrit le plus article commenté, je dois d'abord sélectionner tous les articles qui appartiennent à un auteur spécifique. Ensuite, je peux compter le nombre de commentaires qui ont été postés sous chacun de ces articles. Qui en général conduit à des requêtes plus complexes.
Si les relations sont les suivantes:
Author has many Articles
Article belongs to one Author
Article has many Comments
Comment belongs to one Article
**Comment belongs to one Author of the relevant Article**
alors je pourrais sélectionner directement et compter tous les commentaires qui ont été affichés dans les articles d'un auteur particulier, sans se soucier, y compris les articles dans la requête.
Mais cela implique une relation redondante. Au regard des meilleures pratiques de performance, d'utilisabilité et de codage, quelle est la meilleure approche? Je me souviens d'avoir lu quelque part, que l'on devrait utiliser seulement la première approche, et éviter les relations redondantes. Mais je ne me souviens pas où ou pourquoi. Qu'est-ce qu'un lien vers une approche scientifique pour répondre à cette question?
Vous pensez à [normalisation] (https://en.wikipedia.org/wiki/Database_normalization). Il a ses avantages, mais on ne sait pas si c'est bon pour votre cas d'utilisation. Les avantages des performances des bases de données dénormalisées sont tels que vous les décrivez. – guest