我来自严格的MySQL背景,MongoDB是我与NoSQL的第一次接触。假设我有一群用户和一群组。如何使用MongoDB组织此设置
用户模式:
user_id
username
email
模式
group_id
name
description
如果我使用MySQL和我想有每个用户的有关系,他们属于,我组的组用user_id -> group_id
关系创建另一个表。为这种关系创建另一个MongoDB集合是否合适?如果不是,该计划应该是什么样子?
我来自严格的MySQL背景,MongoDB是我与NoSQL的第一次接触。假设我有一群用户和一群组。如何使用MongoDB组织此设置
用户模式:
user_id
username
email
模式
group_id
name
description
如果我使用MySQL和我想有每个用户的有关系,他们属于,我组的组用user_id -> group_id
关系创建另一个表。为这种关系创建另一个MongoDB集合是否合适?如果不是,该计划应该是什么样子?
我建议你看看MondoDB网站上的data modeling documents。根据用户和组之间关系的性质,您的问题的答案会有所不同。您可能想要使用引用,或者可以将组信息存储在用户文档中。
它可能是这个样子,如果你把它嵌入用户文档:
{
user_id: "the id",
username: "Something",
email: "[email protected]",
group: {
name: "some name",
description: "some description"
}
}
mongo中没有模式...用户的组字段可以包含一个实际的组对象,或者是一个像组的ID一样的引用。
参见this mongo doc。
如果用户的集团持有相同的值作为一个群体的GROUP_ID,是不是那么有关系吗? – 2013-04-23 19:13:29
@CoreyOgburn,是的,我的坏,那是一个错字。 – n0pe 2013-04-23 19:14:12
我认为这是你的答案。如果您确实想要将用户正确绑定到组,请使用[数据库参考](http://docs.mongodb.org/manual/reference/database-references/#dbrefs)。 – 2013-04-23 19:16:05