Sto creando un sistema di menu in PHP e MySQL. Avrò diversi menu diversi e ogni menu avrà una serie di voci di menu collegate ad esso.
Sul sito, ho anche diverse autorizzazioni utente, alcuni utenti possono vedere tutte le voci di menu e alcuni elementi sono nascosti da alcuni utenti. Sono curioso di sapere come potrei gestire le autorizzazioni in modo pulito che consentirà di aggiungere facilmente altri tipi di utenti in futuro.
Quello che ho finora è qualcosa del genere:
-------------------
|Menus
-------------------
|id| |display name|
-------------------
----------------------------------------------------------
|Menu items
----------------------------------------------------------
|id| |menu_id| |label| |link| |parent| |sort| |permission|
----------------------------------------------------------
Sto pensando che la permission
colonna potrebbe essere una stringa separata da virgola che posso confrontare con l'id di autorizzazione dell'utente corrente. Potrebbe anche essere un riferimento ad alcune altre tabelle che definiscono tutte le possibili combinazioni delle autorizzazioni attualmente esistenti.
Una soluzione potrebbe anche essere quella di archiviare semplicemente più voci di menu in cui l'unica differenza è l'autorizzazione, sebbene ciò comporterebbe una duplicazione di archiviazione e forse un problema da amministrare.
Mi piacerebbe sentire qualche pensiero su come strutturare questo e cosa potrebbe essere considerato pulito, dinamico e scadente.
Grazie.