Скорее общий вопрос. Я настраиваю серверную часть Mongoose Node. У меня есть 3 коллекции: Пользователь, Отдел и Деятельность.
Если я добавляю Activity, я получаю _ID только что созданного Activity. Затем мне нужно добавить этот идентификатор в соответствующий массив действий Users и добавить действие в нужный отдел.
Просто интересно, какой должна быть архитектура для этого. Мои конечные точки настроены с помощью Express. И ActivityController, и контроллер пользователя / отдела. Которые добавляют, получают, обновляют и уничтожают Activity / Users / Departments.
Когда я добавляю Activity, я создаю документ в двух других коллекциях, но как мне это настроить ... будет ли create
в контроллере Activity также обновлять User и Department? Или мне надо поставить контроллер поверх всех них? Я не совсем уверен.
Схема деятельности:
activityName: String
activityOwner: ObjectId
activityLocation: String
Схема отдела:
departmentName: String
departmentActivities: [ObjectId]
Схема пользователя:
userName: String
userAddress: String
userActivities: [ObjectId]
@cagliostro Я предоставил базовую схему. Достаточно разобраться в проблеме. Если я добавляю действие, мне нужно обновить пользователя и отдел, указав его идентификатор. Как бы я это сделал с точки зрения контроллеров, обрабатывающих HTTP-запросы на отдых ... какая архитектура. Например, чтобы добавить одно действие без обновления какой-либо другой коллекции, я бы просто: Конечная точка> Контроллер активности> Модель> Db
Чтобы ответить просто, я скажу, что лучше всего использовать в вашей модели крючок мангуста Post Save. Но я думаю, что вы, вероятно, сможете найти лучшую общую схему БД. Поскольку в нем отсутствует некоторая информация о взаимосвязи между всеми моделями, трудно что-то рекомендовать. По крайней мере, вы можете добавить идентификатор отдела в схему действий и удалить массив действий в модели отдела. На самом деле, наверное, то же самое и для пользователей.
было бы лучше, если бы вы предоставили схему для всех из них.