如何构建Department-Employee数据

时间:2018-05-10 13:25:06

标签: mongodb reactjs data-structures database-design

目前我正在试图找出为部门文档设计合适的架构和结构的最佳方法,该文档将包含员工及其职位列表,我不确定的是如何最好地接近结构如果每个部门都有一个包含其位置的成员数组,那么构建它会更好:

  • dept id。
  • dept name
  • dept division id
  • 员工

    • ID
    • 名称
    • 部门ID
    • 位置
{
   departments : [
             { 
                id: 1,
                Name: xyz,
                divisionID: 123,
                employees: [ {  
                    memberName: abc,
                    position: Manager,
                    ...otherData
                },
                {  
                    memberName: abc,
                    position: Support,
                    ...otherData
                }
              ]
            }
       ]
    }

或者让员工字段成为其中包含成员的职位集合,如下所示:

    • 位置

      • EmployeeData工作
members: [{ 
    Manager: [
        { id, name, etc...}
    ], 
    Support: [
        {id, name etc...}
    ],
}]

这主要是为了找出构建这种关系的方法,以便通过ReactJS更有效地在客户端上呈现数据

2 个答案:

答案 0 :(得分:1)

我认为最好将每位员工作为一个单独的实体。

这样,如果您需要添加/删除员工(更频繁地添加/删除部门),您将需要更少的步骤。

答案 1 :(得分:0)

您应该为员工单独收集并将其_id放在departments employees数组中...这样,您可以轻松进行填充和查询等查询喜欢搞定

部门馆藏

{
   departments : [
             { 
                id: 1,
                Name: xyz,
                divisionID: 123,
                employees: [
                  ObjectId("1"),
                  ObjectId("2")
                ]
             }
         ]
     }

员工收藏

{
       empoyees: [{ _id: ObjectId("1"), _id: ObjectId("2") }]
}