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