Я изучаю MongoDB и пытаюсь осмыслить идею не использовать схему реляционной базы данных.
Для моего приложения я хочу иметь возможность добавлять новых пользователей и проекты и назначать пользователей в проекты с помощью Роли, например, «менеджер», «разработчик» и т. Д. c. Пользователи должны иметь возможность просматривать подробную информацию о проектах, в которых они имеют роль. Получение сведений о проекте должно включать список пользователей, также имеющих роли в этом проекте.
Предположим, что я добавляю нового пользователя через POST в /users
. Я могу добавить новый проект с POST к /projects
.
Затем я хочу дать пользователю роль в проекте. Я мог бы сделать PUT для /users/{id}
с ролью (включая имя роли и идентификатор проекта), но тогда получение сведений о проекте через GET /projects/{id}
не будет включать список пользователей с ролями в этом проекте.
Я мог бы вместо этого POSTed Роли /project/{id}
(включая имя роли и идентификатор пользователя), но тогда GET /users/{id}
не будет включать их роли, и я мог бы хотеть отобразить роли, в которых участвует пользователь, на их целевая страница.
Для создания новой роли мне действительно нужно было бы установить PUT на /users/{id}
, а затем сделать еще один PUT на /projects/{id}
с ролью и пользователем?
быть достигнутым в реляционной базе данных путем простого создания таблицы ролей, которая может включать имя роли, идентификатор пользователя и идентификатор проекта. Затем я мог выполнять объединения и получать доступ к любой информации, которая мне была нужна.
Я что-то здесь упускаю? Любые советы или полезные ссылки будут с благодарностью.