Моделирование данных JSON: пользователи, имеющие доступ к проектам - PullRequest
0 голосов
/ 27 февраля 2019

При структурировании нашей модели данных (JSON в базе данных документов) мы имеем users, которые являются частью project.IE проект имеет много пользователей, и пользователь может быть частью многих проектов.

Имеет ли смысл хранить каждый проект, к которому у пользователя есть доступ, у пользователя:

{
   "id": "u1"
   "name": "John Doe",
   "email": "john.doe@domain.com",
   "projects": [
       "p1",
       "p2",
       "p3"
   ]
}

Или вместо этогосохранить пользователей в самих проектах:

{
    "id": "p1"
    "name": "Project A",
    "users": [
        "u1"
    ]
}

{
    "id": "p2"
    "name": "Project B",
    "users": [
        "u1"
    ]
}

{
    "id": "p3"
    "name": "Project C",
    "users": [
        "u1"
    ]
}

Мы ожидаем, что нам нужно будет выбрать все проекты для данного пользователя, а также выбрать всех пользователей для данного проекта.

1 Ответ

0 голосов
/ 27 февраля 2019

В соответствии с документом базы данных Mongo (https://docs.mongodb.com/manual/tutorial/model-embedded-one-to-many-relationships-between-documents), два вышеупомянутых способа вполне приемлемы. Я думаю, что бизнес примет решение о том, какую модель данных следует выбрать, например, если был только один или два проекта, но многопользователи, и вам нужно только показать список проектов пользователей, первый способ лучше. P / S: Если вы используете Mongo, рассмотрите возможность использования mongoose, которая помогает легко получать данные.

...