Организация базы данных для приложения
Пишу веб-приложение. Встал вопрос организации структуры бд для разных типов пользователей. Недоумеваю как сделать это наилучшим образом, чтобы потом не переделывать. Планируется создать несколько типов пользователей: "администратор", "стандартный пользователь", "модератор"... У каждого типа имеются как свои поля, так и общие для всех. Как же лучше всего построить бд?
Ответы (1 шт):
Если методов не много тогда просто флаги
0x00000001 - может логинится
0x00000002 - может писать посты
0x00000004 - может модерировать
0x00000008 - может зайти в админку
1+2+4+8 (получает все привелегии)
Если методов планируеться много то создай табличку Permissions, Roles, Permission2Role
Где будет
Permissions:
# Название действие1 действие2 действие3
1 is.user Y N N
2 is.moderator Y Y Y
Roles:
# Название parent
1 User NULL
2 Moderator 1
Permission2Role:
#роль #содержит
1 1
2 2
тогда читаешь деревом все наследственности и переписываешь их более верхним способом
Минус такой таблички - что при изменении 1 из ролей надо перечитать все дерево и закешировать permission