2011-10-31 63 views
0

我有以下类别:的MongoDB:embeding VS参考

  • 客户包含产品包含项目包含任务和
  • 公司包括辅助包含部包含用户(用户包含自定义属性)

什么是最佳实践?如何更有效地使用mongodb?

至于我,用户项目会更频繁地发生变化,应该被定义为独立的集合。

你有什么建议吗?

回答

0

对于你的问题没有统一的答案,因为MongoDB允许你同时执行嵌入和引用。 但是,这里有一些提示:不要臃肿集合,因为查询下面的元素可能很难,尤其是如果你要使用列表。

如果你能够原型,尝试先嵌入集合,然后编写一个单元测试,它将添加/删除/查询项目和用户。如果这能起作用,那么就没有必要引用它们。

+0

该指数如何?我将能够在db.Company.enshureIndex('subsidiary.departament.user.name.lastname')上创建索引。 – 1gn1ter

+0

当然,为什么不呢?请参阅http://www.mongodb.org/display/DOCS/Indexes#Indexes-IndexingonEmbeddedKeys(%22DotNotation%22) –

+0

速度如何?什么会更快?单独的集合和链接vs大文档? – 1gn1ter