Задать вопрос
@udt_pro
Web developer

Определение типа пользователя в программе. Какую структуру БД выбрать?

Здраствуйте. Есть программа с единой точкой входа, АРМ. Существует древовидная структура доступа к функционалу. Допустим, администратор может создавать пользователей, пользователи могут производить записи в БД, но не могут создавать других пользователей.
Первый подход. Создается таблица администраторов и таблицы пользователей(разные виды). При вводе связки логин/пароль ищется совпадения в разных таблицах и выдается тип пользователя в зависимости в какой таблице совпало. Недостаток, если пользователь состоит в нескольких группах.
Второй. Хранить все в одной таблице, с полем привилегий, если несколько привилегий, предложить выбрать под какой заходить.
Какой метод лучше выбрать или отказаться и придумать еще?:(
Большое спасибо.
  • Вопрос задан
  • 249 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя novrm К ответам на вопрос (3)
@novrm
Таблица с ролями 'role':
id | parent_id | role
--+------------+--------
1 | NULL | quest
2 | 1 | user
3 | 2 | admin
--+------------+--------

Таблица соответствия роли к пользователю 'user_role_linker':
---------+--------
user_id | role_id
---------+--------

Примеры:
https://github.com/bjyoungblood/BjyAuthorize
https://github.com/ZF-Commons/zfc-rbac/tree/master/docs
Ответ написан
Комментировать