1

对于我拥有的一些高尔夫数据,我在 mongo 中的最佳模式是什么有点麻烦。

Tables:
ClubManufacturer (id, name, descr) -- ex: 1, Titleist
ClubType (id, name) -- ex: 1, Driver
Club (id, id_clubType, id_clubManufacturer, name, url) -- ex: 1, 1, 1, 913D2, link

我是否应该将每个球杆制造商存储为文档,并将球杆(和类型)作为文档的属性?我不知所措,因为我需要访问数据,以便我需要显示所有驱动程序或制造商的所有俱乐部。

我也是 mongodb 的新手,因此非常感谢任何见解。

谢谢!

4

2 回答 2

1

如果您的制造商有大量描述,那么您可能希望将它们分开以减少冗余。作为 Asya Kamsky 回答的延伸:

Manufacturer Collection:
{
   _id: "Manufacturer Name",
  description: "Long ... Description"
}

Club Collection:
{
  _id: Auto_Generated_Hash,
  manufacturer: "Name/ID",
  type: "Driver",
  name: "Club Name",
  url: "http://www.url.com/"
}

我使用制造商的名称作为_id,这样如果您不需要描述,您仍然知道制造商是什么而无需进行“加入”。

于 2013-10-28T00:51:19.790 回答
0

除非您的制造商和类型表实际上比您在此处列出的要大得多,否则让 Club 集合中的每个文档看起来像这样似乎很简单:

{ _id: 1,
  manufacturer: 'Titleist',
  type: 'Driver',
  name: '913D2',
  url: 'http://blah.blah.blah/'
}

现在,您可以索引制造商和类型字段以支持通过任一属性进行快速查询。

于 2013-10-27T03:03:03.170 回答