【问题标题】:How to structure Department-Employee data如何构建部门-员工数据
【发布时间】:2018-10-20 18:57:44
【问题描述】:

目前,我正在尝试找出为包含员工及其职位列表的部门文档设计合适架构和结构的最佳方法,但我不确定如何最好地处理最好将其构建为每个部门都有一组包含其职位的成员,例如:

部门

  • 部门编号。
  • 部门名称
  • 部门编号
  • 员工

    • 身份证
    • 姓名
    • 部门编号
    • 位置

{
   departments : [
             { 
                id: 1,
                Name: xyz,
                divisionID: 123,
                employees: [ {  
                    memberName: abc,
                    position: Manager,
                    ...otherData
                },
                {  
                    memberName: abc,
                    position: Support,
                    ...otherData
                }
              ]
            }
       ]
    }

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

  • 部门

    • 位置

      • 员工数据

members: [{ 
    Manager: [
        { id, name, etc...}
    ], 
    Support: [
        {id, name etc...}
    ],
}]

这主要是想弄清楚用什么方式来构造这个关系,以便通过ReactJS更高效地在客户端渲染数据

【问题讨论】:

    标签: mongodb reactjs data-structures database-design


    【解决方案1】:

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

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

    【讨论】:

    • 那么将每个员工作为一个个体存储,并将其减少到职位-员工结构中,以便在呈现数据时更容易处理数据会更好吗?
    【解决方案2】:

    您应该为员工单独收集并将其 _id 放入 departments employees 数组中...这样在您需要时可以轻松进行填充和查找等查询

    部门合集

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

    员工收藏

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

    【讨论】:

    • 我是否还需要在员工集合中存储对部门_id 的引用?
    • 这取决于你...因为现在查找查询不需要参考
    猜你喜欢
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多