glaphire
@glaphire
PHP developer

Стоит ли денормализировать список разрешенных действий пользователя в json поле?

Стоит вопрос о том, что есть список должностей и список разрешенных действий, которые нужно связать.
Самым простым решением кажется создание таблицы "employee", таблицы "actions" и связать их связью "многие ко многим".
Неформальное общение со знакомыми разработчиками добавило идею о хранении списка разрешенных действий в поле json таблицы employee. С одной стороны вроде список действий меняется редко и не затрагивает много строк в случае обновления, но с другой стороны на то база и реляционная, чтобы хранить нормализованные данные, а не кидать все в кучу в json'е.
Я знаю что mysql работает с json'ом с версии 5.7.8, но всегда слышала отзывы что там многое сыро и не стоит брать этот функционал за основу.
Вопрос вроде простой, но посеял зерно сомнения, были ли у вас минусы от использования второго подхода?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 2
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
я не чураюсь сериализации данных, если мне не нужно делать выборки по атрибутам. в противном случае я сделаю n->n связь.

но! это же классическая задача RBAC. разве для нее нет эталонного решения?
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
json - это таблица в представлении поля, а не обычные текстовые данные.
Никакой денормализации быть не может тут.
Используйте json смело: не потеряете ни в скорости, ни в удобстве.
Я часто юзаю json вместо старой привычной связки "many-to-many".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы