Несколько раз посмотрел
эту статью, и
эту
Так же просмотрел, как для примера,
апи ВК с настройкой прав доступа.
Как по мне идея с разделением прав на биты очень интересна.
Но тут не одно НО.
В примерах из статьи на хабре указан слишком простой пример, и для своего проекта он не подходит (как мне кажется).
Допустим у нас есть несколько разделов (посты, аудио, видео, изображения, личный кабинет, рекламный кабинет, админка, администратор, и еще штук 5 допустим)
От постов до изображений мы можем:
- смотреть
- комментарии
- смотреть
- добавлять
- удалять
- редактировать
- редактировать_глобально (а-ля для админов и редакторов с модераторами)
- добавлять
- удалять
- редактировать
- редактировать_глобально
А в личном кабинете и остальных блоках будет еще куча действий (например: вкл/выкл для своих комментов, лимиты на добавление записей и тд)
Это уже получается 10 полей * на 4 раздела (посты, картинки, ...) = 40 полей
А уж остальные точно будут еще больше и получится что для одной группы пользователей будет порядка 100 полей
Это конечно можно сделать, но оптимизация тут будет крайне плохой
Единственное думал на счет битов, например блок с комментариями можно разбить так:
0 - ничего нельзя
1 - можно смотреть
2 - можно добавлять
4 - можно редактировать
8 - можно удалять
16 - можно редактировать глобально
32 - можно удалять глобально
и тогда вместо 6 столбцов для комментариев использовать 1
Например если это админ, то у него будет доступ 64(111111), а для обычного пользователя 15(1111)
В общем, я те статьи прочитал раз по 10, если не больше. Пробовал делать такие таблицы, которые указал выше, но они уж очень огромные выходили
Можно конечно разбить на блоки сами блоки (масло масляное), но это огромное количество таблиц.
у меня сейчас их 50, не хотелось бы чтобы на одни только правила еще столько же было.
Буду рад любым предложениям, либо ссылкам на статьи