Je suis à la recherche de quelques recommandations sur la façon de structurer la partie balises de ce modèle de données:Recommandations sur la structure pour MongoId/MongoDB Arbre de tags
Voici une version simplifiée de celui-ci:
- une Le site a beaucoup de messages (association relationnelle [références_many en parlant mongoïde]). Un site a un arbre de balises
- un message a un tableau de balises (sous-ensemble des balises du site, l'ordre n'a pas d'importance)
Les cas d'utilisation Je me soucie sont:
- Enregistrement rapide des balises & du site sous forme d'arborescence (c'est-à-dire pour pouvoir les afficher sous la forme d'un arbre dans l'interface utilisateur)
- Recherche rapide des postes du site ayant un tag particulier.
Sans la structure arborescente, http://github.com/wilkerlucio/mongoid_taggable résout mes cas d'utilisation. Je l'ai vu quelques-uns des ports acts_as_tree pour MongoId aiment:
- http://github.com/benedikt/mongoid-tree
- http://github.com/saks/mongoid_acts_as_tree
- http://github.com/ticktricktrack/mongoid_tree
Ils semblent tous adopter une approche relationnelle, par opposition à intégré, au stockage la hiérarchie, ce qui signifierait que les deux cas d'utilisation ci-dessus seraient lents (nécessitant probablement une carte/réduire).
Quelqu'un at-il fait quelque chose de similaire, ou avez-vous des conseils? Idéalement, j'adorerais une solution Mongoid, mais je suis également heureux de me rendre au driver Ruby.
Merci Thilo. Les tags ne peuvent pas être déplacés. L'arbre entier peut être supprimé/recréé périodiquement. Encore une fois c'est plus facile intégré. Je pense donc à le modéliser très simplement. Les sites stockent un tableau imbriqué (arbre) de tags et Posts stocke un tableau de tags. Le stockage/extraction du tableau imbriqué sera rapide (atomique) et l'interrogation de la collection Posts sera relativement simple car il s'agit d'une requête simple dans le tableau de balises. Merci pour l'aide – Nader
Oui, ça sonne bien. Fais ça. – Thilo