我真的是MongoDB的新手,但是我正在尝试使用MongoDB制作项目管理工具。对于我如何设计数据库结构,我需要一些专业意见,因为我对自己所做的事情感觉不合适。
我最初想在mongoDB中使用的项目层次结构是下面的第一个示例。但是,我最终通过使用类似于第二个示例的集合来按层次结构分离数据,因为一个数据可以被多个用户同时修改,并且我不确定在这种情况下mongoDB如何处理数据。它现在可以正常工作,但是我需要制作一个更大的应用程序,所以我认为这是时候让这个问题变得过于复杂了。预先感谢。
/////////////////////////////////////////////////////
// Example 1
/////////////////////////////////////////////////////
[
{
projectName: "Cleanup Project",
clientId: "123456",//Client Id
parts: [
{
name: "Cleanup my room",
bigTasks:[
{
name: "Wipe",
smallTasks:[
{
name: "Wipe Windows",
eta: "2019-02-13T14:30:52.123Z"
},
{
name: "Wipe my table",
eta: "2019-02-13T15:30:52.123Z"
}
]
},
{
name: "Vacuum",
smallTasks:[
{
name: "Vacuum under my bed",
eta: "2019-02-13T16:30:52.123Z"
},
{
name: "Vacuum my carpet",
eta: "2019-02-13T17:30:52.123Z"
}
]
}
]
}
]
},
{...}//More Projects
]
/////////////////////////////////////////////////////
// Example 2
/////////////////////////////////////////////////////
//Project Collection
[
{
projectName: "Cleanup Project",
clientId: "123456",//Client Id
parts: "9876543210"
},
{}//More Projects
]
//Parts Collection
[
{
_id:"9876543210",
name: "Cleanup my room",
bigTasks: "1212121212"
},
{}//More Parts
]
//BigTasks Collection
[
{
_id:"1212121212",
name: "Wipe",
smallTasks: "3453453453"
},
{}//More BigTasks
]
//SmallTasks Collection
[
{
_id:"3453453453",
name: "Vacuum my carpet",
eta: "2019-02-13T17:30:52.123Z"
},
{}//More SmallTasks
]