数据库表结构:场地和类别

时间:2014-10-07 00:22:22

标签: node.js mongodb database

我有一个场地列表和一系列类别,如酒吧,夜总会,餐厅,咖啡厅,迪斯科舞厅等。我需要将所有场地与相应的类别配对。

一个场地可能属于一个或多个类别:

场地,类别 地点A |酒吧,餐厅 地点B |夜店 地点C |咖啡厅,餐厅 Venye D |迪斯科

现在,我该如何正确地构建它? 我似乎在类别列中以逗号分隔的列表不是正确的方法。 我正在使用MondoDB btw。

2 个答案:

答案 0 :(得分:0)

[
  {
    venue: 'Some Nightclub',
    categories: ['bar', 'nightclub']
  },
  {
    venue: 'Some Cafe',
    categories: ['cafe', 'disco']
  }
]

答案 1 :(得分:0)

由于每个场地可以有许多类别,并且每个类别可以有许多场地,因此称为M:N关系。

在这种情况下,这是我使用的架构,基于书籍MongoDB Applied Design Patterns中的模式(链接指向右侧页面):

//db.venue.schema
[
  { "_id": "Venue A",
    "category_ids": ["bar","restaurant",...]
  }
]

// db.category.schema
[
  { 
    "_id": "bar"
  },
  {
    "_id": "restaurant"
  },
  ...
]