2011-10-31 6 views
0

Je les collections suivantes:MongoDB: plongement vs référence

  • client contient le produit contient du projet contient des tâches et
  • Société contient filiale contient service contient des utilisateurs (et l'utilisateur contient des propriétés personnalisées)

Quelle est la meilleure pratique? Comment utiliser mongodb plus efficacement?

Quant à moi, utilisateurs et projets seront changés plus souvent et doivent être définis comme des collections distinctes.

Que conseillez-vous?

Répondre

0

Il n'y a pas de réponse unifiée pour votre question, car MongoDB vous permet de faire à la fois l'incorporation et la référence. Mais voici quelques conseils: ne gonflez pas une collection, car il peut être difficile d'interroger les éléments en profondeur, surtout si vous utilisez des listes.

Si vous êtes capable de prototyper, essayez d'intégrer les collections d'abord, puis écrivez un test unitaire qui ajoutera/supprimera/interrogera des projets et des utilisateurs. Si cela fonctionne, il n'y a pas besoin de les référencer.

+0

que diriez-vous de l'index? Serai-je capable de faire un index par exemple sur db.Company.enshureIndex ('filiale.departament.user.name.lastname')? – 1gn1ter

+0

Bien sûr, pourquoi pas? Voir http://www.mongodb.org/display/DOCS/Indexes#Indexes-IndexingonEmbeddedKeys(%22DotNotation%22) –

+0

qu'en est-il de la vitesse? ce qui sera plus rapide? collections séparées et reliant vs grands documents? – 1gn1ter