Я создаю систему меню на PHP и MySQL. У меня будет несколько разных меню, и каждое меню будет иметь набор пунктов меню, связанных с ним.
На сайте у меня также есть разные права доступа, некоторые пользователи могут видеть все пункты меню, а некоторые элементы скрыты от некоторых пользователей. Мне любопытно, как я могу обработать разрешения чистым способом, который позволит легко добавлять больше типов пользователей в будущем.
То, что у меня пока есть, примерно так:
-------------------
|Menus
-------------------
|id| |display name|
-------------------
----------------------------------------------------------
|Menu items
----------------------------------------------------------
|id| |menu_id| |label| |link| |parent| |sort| |permission|
----------------------------------------------------------
Я думаю, что permission
столбец может быть строкой через запятую, которую я могу сопоставить с идентификатором разрешения текущего пользователя. Это также может быть ссылка на некоторую другую таблицу, которая определяет все возможные комбинации существующих в настоящее время разрешений.
Одно из решений также может заключаться в том, чтобы просто хранить несколько пунктов меню, где единственным отличием является разрешение, хотя это может привести к дублированию хранилища и, возможно, затруднит администрирование.
Я хотел бы услышать некоторые мысли о том, как структурировать это и что можно считать чистым, динамичным и дерьмовым.
Спасибо.