Как хранить значения по умолчанию в файле, а остальное записывать в БД? Здравствуйте.
Собственно вопрос следующий :
Есть права пользователя. Хочется права по умолчанию хранить в файле, и редактировать там же, например в YML, а все что добавит пользователь - соответственно запиливать в БД. Каким образом разграничить БД и файл ? При том, что у пользовтеля будет метод getPermissions() , который должен вернуть набор объектов, независимо от того, где они хранятся.
Или записывать все значения по умолчанию фикстурами\миграцией ?
Но тут встает вопрос, даже если хранить все в БД и не нарушать целостности данных ,тогда нужно как-то решить вопрос с присваиванием дефолтных значений пользователю. Т.е. нужно каким-то образом сделать ->setPermission(/*А вот тут должна быть сущность из БД*/) , т.е. тогда нужно как-то искать сперва в БД эту сущность по Алиасу и потом только присваивать.

21 Авг 2019 в 07:04
243 +1
0
Ответы
1

Один из способов реализации подобной логики - использовать сервис для работы с правами пользователей, который будет обращаться к файлу для получения значений по умолчанию и к базе данных для работы с данными, добавленными пользователями.

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

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

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

Что касается присваивания дефолтных значений пользователям, то можно реализовать логику поиска сущности из БД по алиасу и присваивать ее пользователю. Например, можно создать метод в сервисе для поиска сущности по алиасу и использовать его при необходимости.

Таким образом, можно реализовать задачу с хранением значений по умолчанию в файле и работы с данными в базе данных, используя сервис для управления этим процессом.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 093 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир