@chistya

Как организовать схему БД?

Добрый день есть следующая схема БД: cb64c07b25ac47bbab3631bca595e124.png
т.е. пользователь входит в группу, а у группы есть список меню отображаемых в интерфейсе. В данном случае мы можем узнать список меню у конкретного пользователя. Но иногда требуется добавить отдельное меню пользователю вне зависимости от группы. Как это лучше хранить в БД?
  • Вопрос задан
  • 744 просмотра
Решения вопроса 1
@edb
SQL
такие особые случаи лучше хранить отдельно, например user_custom_menu, и там сохраняете user и menu, а потом через union all присоединяете результат к основному запросу. В принципе то же, что и Roman Kitaev во втором варианте предложил.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@deliro
Вариант без изменения схемы: добавить юзера в группу, где будет только он один, навешать нужные меню.
Вариант со схемой: М2М на меню и юзера (так же, как и user_group и group_menu)
Ответ написан
@res2001
Developer, ex-admin
В таблицу group_menu добавьте поле id_user. Когда меню назначается через группу, то оно будет равно null, если через пользователя - id_group=null. И да, название таблицы уже не будет соответствовать содержанию - можно переименовать. Запрос возвращающий меню потребуется переписать соответственно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы