Quels seraient les avantages et les inconvénients des données hiérarchiques et. les données relatives, la performance (et catégorisation)?

StackOverflow https://stackoverflow.com/questions/731983

Question

Ceci est lié à cette question. Il m'a fait penser que, par exemple, ce livre . Au lieu d'être un enfant de deux [Agriculture] et [Other], dans les arbres [Books > Catalogs > Agriculture] et [Business & Industrial > Agriculture & Forestry > Other], respectivement, il pourrait se tenir sur ses propres ont ces niveaux comme balises, au lieu.

Dans un site comme eBay, seraient les coûts de performance de la liste de tous les records avec les balises [Agriculture ET Catalog] fortement outweigth ceux de la liste de tous les dossiers dans la [Books > Catalogs > Agriculture] catégorie , à condition les données sont correctement normalisées?

Je sais que cela est probablement une question stupide (et non, je ne pense pas que je suis la prochaine programmation eBay), mais je ne peux pas secouer cette curiosité et, pire encore; tentation ; donc je préfère maintenant le son stupide et obtenir une bonne compréhension de mes malentendus que faire quelque chose de stupide ou inutile par la suite.

Était-ce utile?

La solution

Lorsque le modèle relationnel est apparue, le paradigme de base de données dominant était hiérarchique; puis (comme cela est encore le cas) hiérarchique est plus efficace car, en substance, vous pouvez commencer avec les requêtes partiellement prejoined.

Mais seulement sur la base d'une structure hiérarchique statique. La grande difficulté apparaît quand vous voulez fléchir la vue des données à venir d'une autre dimension de la racine. (Il était une question fortement débattue si les bases de données relationnelles pourrait jamais être assez efficace pour une utilisation pratique;. Bientôt résolu par une application diligente de la loi de Moore)

Pensez à Les clients qui ont des ordres qui comprennent les produits; une hiérarchie. Inévitablement, vous aurez envie d'être aussi capable de penser à des produits qui doivent être trouvés dans les commandes des clients; toute une autre hiérarchie. Et dans les régions qui vendeurs génèrent les commandes des clients; ou avoir des clients qui passent une commande.

Bases de données relationnelles vous donnent la possibilité de reconstruire vos hiérarchies à volonté avec une efficacité à peu près égale; un avantage uniquement disponible dans d'autres formats de base de données au coût de l'intégration de multiples hiérarchies orthogonales; dans ce cas, le coût de la modification, l'ajout ou la suppression de données devient astronomique.

Autres conseils

Le but principal du modèle relationnel est d'éviter les doubles emplois. Les données hiérarchiques, tout plus facile à grok manuellement, souffre de problèmes de duplication.

Utilisez le modèle qui correspond à vos données mieux au lieu de faire l'optimisation prématurée.

J'ai tendance à construire des arbres hiérarchiques de données de présentation relationnelles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top