2017-02-20 65 views
0

我正在創建一種項目管理應用程序,其中包含這些作業中的「作業」和「實體」(或任務)。作爲它的一部分,我正在創建一個待辦事項列表,對每個用戶都應該是唯一的,我想知道數據庫最好的設計是什麼?Mongodb設計建議 - 待辦事項列表

實體存在於其自己的集合中,並且通過jobId字段與作業相關。

我最初的想法是構建它喜歡:

Entity 
    Todos[] 
     User1 
       Todo1 
       Todo2 
       ... 
     User2 
     ... 

我也有一個用戶集合,以便將它更好地在其中存儲的待辦事項,如:

User 
    Todos[] 
      Entity 
       Todo1 
       Todo2 
       ... 

或其他方法?我認爲,更新和刪除待辦事項將是相當棘手..

更新

選擇3 - 我可以刪除用戶陣列和用戶存儲每個待辦事項對象,比如:

Entity 
    Todos[] 
      Todo{ 
       User: John 
       Text: some todo 
       Done: false 

然後由特定用戶過濾所有待辦事項。我會得到一些重複的數據(用戶),但我不認爲這是如此糟糕..

此外,當更新/刪除待辦事項可以安全地匹配它基於文本字段或我需要存儲一個每個待辦事項的唯一ID?

+0

https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-1很值得一讀 –

回答

0

我相信你最初的想法是兩者中最好的。其中,用戶被引用。第二個看起來像一個帶有待辦事項的用戶文檔。我認爲這有點過於耦合,第一種方法會被更好地分解,並且更容易修改/維護,這是由於未來的原因。

+0

感謝您的回覆。你知道我將如何查詢和編輯待辦事項嗎?由於它在兩個陣列之內,我今天掙扎着。 –