2017-02-20 66 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

感谢您的回复。你知道我将如何查询和编辑待办事项吗?由于它在两个阵列之内,我今天挣扎着。 –