@Phoen1xx

Как правильно хранить данные разных пользователей в бд?

Здравствуйте. У меня на сайте есть пользователи с различными ролями (администратор, модератор, пользователь). Все они находятся в одной таблице "users", но т.к. у каждого из них свои данные, например у пользователя есть фио и номер телефона, а у администратора этих полей нет, пришлось создать достаточно большую бд котоаря выглядит сейчас примерно таким образом:
+----------------+------------+-----------+-------------+----------+--------+
|      email     | first_name | last_name | second_name | password |  role  |
+----------------+------------+-----------+-------------+----------+--------+
| admin@admin.ru | NULL       | NULL      | NULL        | ...      | admin  |
| user@user.ru   | FName      | LName     | SName       | password | user   |
+----------------+------------+-----------+-------------+----------+--------+

Таким образом получается слишком много столбцов т.к. ролей несколько. Как стоит правильно это хранить?
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Nc_Soft
Сделайте отдельные таблицы, это же разные сущности.
Ответ написан
@immelnikoff
Изучаю БД. Пока больше спрашиваю, чем отвечаю
Как насчет модели управления доступом на основе ролей (RBAC) ?
Такие сущности, как ресурс, действие, пользователь и роль выделяются в отдельные отношения. Связываются они табличками вида M:N.
Ответ написан
@Kirill-Gorelov
С ума с IT
Не парься, нормальная БД.

Посмотри на структуру БД битрикса. Там не важно какие типы пользователей, поля у всех одинаковые. И уж тем более стандартные точно. Типа пароль, группа, имя и тд.
Даже в разных фрэймворках такая же структура таблицы user, с небольшими отличиями, конечно же. Но суть такая же.
Ответ написан
Ваш ответ на вопрос

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

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