2012-02-22 94 views
0

我有一个关于在mongo db中设计数据模型的概念性问题。 我有一些“列表”的记录。每个列表是“id”,descr,createdBy等“fiels”的“一行”记录。但是现在我要求每个“列表”都可以与其他用户共享。设计/重新设计模型的最佳方式是什么,以便用户登录后查看他创建的“列表”并与他共享“列出”?我正在考虑创建一个新的字段“sharedWith”,其中与“list”共享的所有用户名都以逗号(或其他)分隔开来。然后在这个领域提出请求时进行搜索。但不知何故,这种方法在我看来并不是很有用。你能给我一些建议或指导方针吗? 我用猫鼬使用nodejs。设计MongoDB模型?

谢谢!

回答

1
User: { 
    ... 
    myLists: Array<ListObject> 
    sharedLists: Array<ListObject> 
}; 

ListObject: { 
    ... 
    owner: User, 
    sharedWith: Array<User> 
}; 

这对我来说似乎是一个明智的设计。

+0

感谢您的回答雷诺斯。但是,如果对与用户共享的ListObject进行更改,请在共享列表中进行此更改?或者只是在两个地方更新它? (对不起,如果问题是愚蠢的,但我有点新的mongodb) – 2012-02-23 08:46:30

+0

@countnazgul你在这两个地方更新。它被称为非规范化。这是你用mongoDB做的,因为它给你的速度 – Raynos 2012-02-23 09:37:37

+0

我明白了。谢谢雷诺斯。 – 2012-02-23 09:54:54