Mongodb设计建议 - 待办事项列表

时间:2017-02-20 20:58:31

标签: mongodb

我正在创建一种项目管理应用程序,其中包含这些作业中的“作业”和“实体”(或任务)。作为其中的一部分,我正在创建一个todo列表,每个用户都应该是唯一的,我想知道数据库的最佳设计是什么?

实体存在于自己的集合中,并通过jobId字段与作业相关。

我最初的想法是将它构造成:

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

我也有一个用户集合,所以最好将todos存储在那里:

User 
     Todos[]
           Entity
                Todo1 
                Todo2
                ...

还是其他一些方法?我认为更新和删除待办事项将非常棘手..

更新

选项3 - 我可以删除用户数组并将用户存储在每个待办事项对象上,例如:

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

然后由特定用户过滤所有待办事项。我会得到一些重复数据(用户),但我认为这不是很糟糕......

此外,当更新/删除待办事项时,根据文本字段匹配它是否安全?或者我是否需要在每个待办事项上存储唯一ID?

1 个答案:

答案 0 :(得分:0)

我相信你最初的想法是两者中最好的。在其中,引用了用户。在第二个中它看起来像一个带有待办事项的用户文档。我认为这是一个太多的耦合,第一种方法更好地分解,更容易修改/维护,因为未来的原因。