Wie krokodilko in seinem Kommentar schrieb, hängt es von der Flexibilität ab, die Sie benötigen.
Ich habe rollenbasierte Berechtigungen für einen meiner Kunden wie folgt implementiert:
- Benutzer (Benutzer-ID (PK), Benutzername (eindeutig), Passwort (gesalzen und gehasht! ), Vorname, Nachname, Telefon etc')
- Rolle (Rollen-ID (PK), Rollenname (eindeutig), Rollenbeschreibung)
- Berechtigung (Berechtigungs-ID (PK), Berechtigungsname (eindeutig)) – die Registerkarten / Bildschirme / Aktionen kommen hierher
- Benutzer zu Rolle (Benutzer-ID, Rollen-ID) – PK ist beide Spalten kombiniert
- Rolle bis Berechtigung (Rollen-ID, Berechtigungs-ID) – PK ist beide Spalten kombiniert
Aber meine Anforderung war, so flexibel wie möglich zu sein, und es ist ein System, das immer noch wächst (6 Jahre und Zählen).
Ich denke, viele Anwendungen können den Benutzer als eine Eins-zu-Viele-Beziehung anstelle einer Viele-zu-Viele-Beziehung haben, aber ich würde Berechtigungen oder Rollen-zu-Berechtigungen in keiner Anwendung fest codieren.
Weitere Erklärung:Rollenbasiertes Sicherheitsdatenbankdesign on Was zum # weiß ich?