Je crée un système de menus en PHP et MySQL. J'aurai plusieurs menus différents et chaque menu aura un ensemble d'éléments de menu qui lui seront connectés.
Sur le site, j'ai également différentes autorisations d'utilisateur, certains utilisateurs peuvent voir tous les éléments de menu et certains éléments sont cachés à certains utilisateurs. Je suis curieux de savoir comment je pourrais gérer les autorisations d'une manière propre qui permettra d'ajouter plus de types d'utilisateurs à l'avenir.
Ce que j'ai jusqu'à présent est quelque chose comme ceci:
-------------------
|Menus
-------------------
|id| |display name|
-------------------
----------------------------------------------------------
|Menu items
----------------------------------------------------------
|id| |menu_id| |label| |link| |parent| |sort| |permission|
----------------------------------------------------------
Je pense que la permission
colonne peut être une chaîne séparée par des virgules que je peux comparer à l'ID d'autorisation de l'utilisateur actuel. Il peut également s'agir d'une référence à un autre tableau qui définit toutes les combinaisons possibles des autorisations existantes.
Une solution pourrait également être de simplement stocker plusieurs éléments de menu où la seule différence est la permission, bien que cela conduirait à un stockage en double et peut-être une douleur à administrer.
J'aimerais entendre une réflexion sur la façon de structurer cela et ce qui pourrait être considéré comme propre, dynamique et merdique.
Merci.