2012-02-22 98 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