【问题标题】:Mongodb design advice - todo listMongodb设计建议-待办事项清单
【发布时间】:2017-11-01 19:52:02
【问题描述】:

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

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

我最初的想法是将其结构如下:

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

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

User 
     Todos[]
           Entity
                Todo1 
                Todo2
                ...

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

更新

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

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

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

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

【问题讨论】:

标签: mongodb


【解决方案1】:

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

【讨论】:

  • 感谢您的回复。你知道我将如何查询和编辑待办事项吗?我今天正在努力解决它,因为它在两个数组内..
猜你喜欢
  • 2014-01-08
  • 2017-08-29
  • 2013-10-13
  • 2011-11-13
  • 2011-12-28
  • 1970-01-01
  • 2018-06-24
  • 2020-09-02
  • 1970-01-01
相关资源
最近更新 更多