2010-06-30 85 views
0

我正在尝试使用mongodb和mongomapper来存储我的daat的最佳方法。深嵌套或不同的集合mongodb?

我有类别,并且可以通过许多属性来描述每个类别所以长度在毫米,重量(公斤)等

我希望每个用户能够创建他们自己的属性descibe的产品类别。

所以forexample:

用户A想与车轮的数量和汽车的长度存储他的类别“汽车”在毫米 用户B想保存他类别“汽车”与毫米车轮的数量和长度和重量(千克)。

类别对于每个人都是一样的,但属性可能不同。

我应该存储这个类别集合,然后每个cateogry包含和每个用户数组包含属性anmes和单位的散列?

或者我应该把它分解成多个集合?

或者有没有更好的方法可以让人想到?

这是深嵌套问题吗?

非常感谢advancfe的帮助和建议。 rick

+0

这只是您的上一个问题的重新散列:http://stackoverflow.com/questions/3097842/并且您从未费心接受该答案。我会把这个问题留给其他人。 – 2010-06-30 22:29:27

+0

您能否详细阐述“深层嵌套” - 实际上会有多少层次? – nawroth 2010-07-01 07:58:49

+0

叹息......现在它成为第一个回答或获得“最佳”答案的民众比赛。 – luckytaxi 2010-07-02 18:20:16

回答

0

让我们从简单的答案开始。将属性存储为项目文档中的字段。这就是为什么使用无模式数据存储的原因。

现在,关于哪个女巫属性放在哪个项目。简短的回答:你描述的任何方式都可以工作;在效率方面都有一些折衷。

我觉得你的模型是这样的:

  • 有一个集合用户
  • 众多的收藏品项的称为类
  • 每个项目一个成员类别
  • 每个用户有很多项目
  • 在一个类别每个项目有根据用户
  • 许多潜在属性一些用户会共享属性

我想有以下类别:用户,*类别(例如。汽车,船只,房屋等),属性。

属性集合将列出类别(例如汽车)和该类别中的项目的属性(例如燃料里程),以及使用该属性的用户ID的列表。