2011-05-02 4 views
2

Mon application a un modèle de publication et les utilisateurs peuvent commenter un article. Je décide d'utiliser des collections séparées pour les publications et les commentaires ou d'intégrer des commentaires dans les publications. Y a-t-il un avantage à utiliser embed? J'essaie de trouver une raison pour laquelle ça pourrait être mieux pour ce que je fais.Quel est l'avantage d'utiliser l'héritage dans Mongo?

Répondre

3

Ce n'est pas vraiment l'héritage, en gardant les commentaires et les messages dans différentes collections en bon état seulement s'il y a une situation dans laquelle vous les traitez séparément et l'un s'appelle beaucoup plus que l'autre. Par exemple, si j'avais un site où un résumé des messages est affiché sur la page d'accueil et les commentaires ne sont affichés que lors de l'accès à un poste spécifique. Je les garderais dans des collections séparées (je n'utiliserais probablement pas MongoDB pour les publications car la simple mise en cache suffirait) de cette façon, je peux ajuster ma collection Posts pour qu'elle soit petite et rapide et ma collection de commentaires soit plus lente et plus grande. Je suppose que le trafic est tel que les vues de page d'accueil sont MOO plus que des affichages spécifiques (ce n'est pas toujours correct).

Il y a aussi un cas pour les garder ensemble, pour un, il simplifie mon modèle de données en ayant un seul objet. Pour un autre, je n'ai besoin que d'une requête pour extraire toutes les données d'une page spécifique, par opposition à 2 requêtes avec 2 collections. Et enfin, je maintiens la localisation des données, ce qui signifie que le sharding et Map/Reduce peuvent être réalisés de manière plus efficace en cas de besoin.

Questions connexes