0

我正在尝试找出使用 mongodb 和 mongomapper 存储我的 daat 的最佳方法。

我有类别,每个类别都可以用许多属性来描述,例如以毫米为单位的长度,以公斤为单位的重量等。

我希望每个用户都能够创建自己的属性来描述一个产品类别。

例如:

用户 A 想要存储他的类别“汽车”,其中包含车轮数和汽车长度(以 mm 为单位) 用户 B 想要存储他的类别“汽车”,其中包含车轮数和长度(以 mm 为单位)和重量(以 kg 为单位)。

每个人的类别都相同,但属性可以不同。

我是否应该将其存储为类别集合,然后每个类别都包含用户数组,每个用户都包含属性 anmes 和单位的散列?

还是我应该以某种方式将其分解为多个集合?

或者有没有人能想到的更好的方法?

深度嵌套有问题吗?

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

4

1 回答 1

0

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

现在,关于将哪个女巫属性与哪个项目放在一起。简短回答:您描述的任何方式都可以使用;在效率方面都有一些权衡。

我认为你的模型是这样的:

  • 收藏用户
  • 许多称为类别的项目集合
  • 每个项目都是一个类别的成员
  • 每个用户有很多物品
  • 一个类别中的每个项目都有许多潜在属性,具体取决于用户
  • 一些用户会共享属性

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

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

于 2011-03-07T17:09:49.797 回答