Пример:
Есть базовая платформа (core), для пользователей можно выбирать список ролей, в ролях есть список доступных типов.
Например есть роль “Администратор”, со списком
Далее я ставлю плагин “Блоги”: он добавляет в базу тип “Блог”, при этом администратору в список типов должен добавится этот “Блог”.
Далее Администратор заходит в админку ТЕСТОВОЙ среды, мышкой добавляет администратору ещё пару типов в список, после того как он убедился что все работает, изменения нужно закомитить и отправить в деплой.
При этом core может совершенствоваться, и при апдейте либо разворачивании проекта с нуля, нужно что-б core объекты все создались, после чего корректно накатились изменения из плагина “Блог”.
-Иногда порядок в списке важен (при этом разные плагины могут законфликтовать)
-Делать из списка “дочернюю” коллекцию, не очень подходит.
Какие есть варианты реализации?
В принципе, если все хранить разными объектами, т.е. разные плагины не изменяют объекты друг друга, до достаточно будет просто скопировать объекты плагина в базу и все. Но это создает нагрузку/сложности, усложнение редактирования объекта который состоит из разных, либо после развертывания системы делать “компиляцию” объектов разных плагинов и т.п.
Либо прямо результирующие объекты модифицировать, тогда непонятно как комитить “изменения” после редактирования мышкой.
Либо делать какое-то апи на пересекающиеся (общие) типы…