我正在创建一种项目管理应用程序,其中包含这些作业中的“作业”和“实体”(或任务)。作为其中的一部分,我正在创建一个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?
答案 0 :(得分:0)
我相信你最初的想法是两者中最好的。在其中,引用了用户。在第二个中它看起来像一个带有待办事项的用户文档。我认为这是一个太多的耦合,第一种方法更好地分解,更容易修改/维护,因为未来的原因。