У меня есть следующие таблицы:
Имя таблицы = группа Атрибуты:
имя идентификатора
Здесь просто создается группа.
Имя таблицы = групповое разрешение Атрибуты: id group_id Permission_id
Здесь просто назначается разрешение для группы Имя таблицы = Атрибуты разрешения: id имя кодовое имя
Здесь создается разрешение Имя таблицы = пользователь Атрибуты: id имя пользователя пароль
Здесь создается пользователь
Имя таблицы = user_groups Атрибуты: Id User_id Group_id
Здесь назначается группа для пользователя, и все права внутри этой группы должны также назначается этому пользователю. Имя таблицы = user_permission Атрибуты: Id User_id Permission_id
Здесь пользователь может получить больше разрешений, кроме разрешений, назначенных группой.
Например, если у пользователя есть доступ только для чтения и записи из определенной группы, тогда, если пользователь-администратор хочет, он / она может напрямую назначить разрешение sion для доступа к определенному меню определенному c пользователю без назначения другому пользователю той же группы.