У меня есть User
сущности, с Many-To-One
отношений с Company
сущности, Many-To-Many
отношением с Department
лицом, а также имеет role
поле.Где поставить логику согласованности данных?
U1
Пользователь является менеджером в отделе «D» в компании «C», если они есть role="manager"
, company="C"
, departments=["D", ...]
. Но у одного отдела может быть только один менеджер, поэтому мне нужно как-то сохранить это ограничение.
Когда новый пользователь U2
создается с role="manager"
, company="C"
, departments=["D", ...]
, я должен удалить «D» отдел из U1.departments
коллекции.
Каков наилучший способ для поддержания такой логики согласованности данных (и где ее поставить, доктрины lc-событий?)? (Я знаю, что логика довольно странная, но я не могу ее изменить).