我使用JavaScript(没有任何框架)来创建仅客户端应用程序,将使用MongoDB来存储数据。我可以想到 2种方式来建模我的数据。
有人可以帮我理解哪个更合适。
方式#1
[{
title: "bucketList",
id: 1,
tasks: [{
title: "play soccer for world league",
id: 1,
done: false,
comments: ["fifa 2014 is about to start", "need to go buy a Brazil T-shirt"]
}, {
title: "start a school",
id: 2,
done: true,
comments: ["start with being a mentor"]
}]
}, {
title: "to-do",
id: 2,
tasks: [{
title: "create a todo App",
id: 1,
done: false,
comments: []
}, {
title: "watch GOT",
id: 2,
done: false,
comments: ["whitewalkers seems to be in no hurry"]
}]
}]
方式#2
[{
collection - title: "bucketList",
collection - id: 1,
title: "play soccer for world league",
id: 1,
done: false,
comments: ["fifa 2014 is about to start", "need to go buy a Brazil T-shirt"]
}, {
collection - title: "bucketList",
collection - id: 1,
title: "start a school",
id: 2,
done: true,
comments: ["start with being a mentor"]
}, {
collection - title: "to-do",
collection - id: 2,
title: "create a todo App",
id: 1,
done: false,
comments: []
}, {
collection - title: "to-do",
collection - id: 2,
title: "watch GOT",
id: 2,
done: false,
comments: ["whitewalkers seems to be in no hurry"]
}]
答案 0 :(得分:0)
我的两个便士是:
我实际上取决于您希望如何处理数据。
#p>方式#1你用许多do dos一次管理一个完整的do do列表 方式#2让你可以直接访问每个人。方式#1可以轻松地从一个列表访问所有待办事项,但更新“完成”例如将是一个更多的工作,因为它是一个数组。
方式#2使“完成”的更新变得更容易,但是你需要一些迭代/聚合来查找列表的所有内容。 方式#2似乎更容易处理,因为例如更新完成后更容易处理,而具有多个文档的查找很容易处理。 还要考虑您要对数据执行的操作,例如,如果您有截止日期,并且希望在所有待办事项列表中显示所有到期任务,则方式#2将为def。更好的选择。