2010-03-11 9 views
0

J'utilise Rails et dois stocker 4 modèles. Disons un poste qui a beaucoup et appartient à plusieurs catégories. La catégorie d'autre part a beaucoup de qualités. Pour le moment, je suis d'avis que ce poste et ces catégories sont des documents. Les qualités deviennent un document de catégories intégré.MongoDB question d'architecture

Nous arrivons au problème de la racine: Il y a beaucoup de votes sur les qualités qui appartiennent à un article. J'ai pensé à intégrer Votes dans Post et lui donner un quality_id.

Je m'attends vraiment à beaucoup de votes et il doit y avoir une possibilité de les filtrer (par exemple, par nom d'utilisateur/groupe d'utilisateurs/date de vote). J'ai travaillé avec MongoMapper et je pense que l'existence manquante de méthodes de recherche de documents intégrés pourrait devenir un tueur. Que faire si je veux fournir un poste sans tous les votes, mais seulement quelques-uns.

D'un autre côté, je suis préoccupé par les problèmes de performances. Que se passe-t-il si je définis un document pour les votes et si je dispose de tonnes de documents de vote?

Répondre

0

Il n'y a pas de jointure dans MongoDB donc un document incorporé est intéressant si vous voyez toujours ce document dans son parent.

Vous pouvez effectuer une recherche par document incorporé avec MongoDB, donc pas de problème si vous voulez limiter à toutes les qualités avec beaucoup de votes.