Как структурировать данные отдела-сотрудника - PullRequest
0 голосов
/ 10 мая 2018

В настоящее время я пытаюсь найти лучший способ разработать подходящую схему и структуру для документа Департамента, который будет содержать список сотрудников и их должностей, в чем я не уверен, так это в том, как лучше всего подойти к структуре было бы лучше структурировать его с каждым отделом, имеющим массив членов, которые содержат свою позицию, например:

Отдел

  • идентификатор отдела.
  • название отдела
  • идентификатор отдела отдела
  • Сотрудники

    • 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 голосов
/ 10 мая 2018

Вы должны сделать отдельную коллекцию для сотрудников и поместить ее _id в массив departments employees ... Так, чтобы было легко создавать запросы, такие как заполнение и поиск, когда вы хотели бы получить

отделов коллекций

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

коллекции сотрудников

{
       empoyees: [{ _id: ObjectId("1"), _id: ObjectId("2") }]
}
0 голосов
/ 10 мая 2018

Я бы сказал, что лучше хранить каждого сотрудника как отдельную сущность.

Таким образом, если вам нужно добавить / удалить сотрудника (что будет чаще, чем добавление / удаление отделов), вам потребуетсяменьше шагов.

...