Das nix gut!
1 | Elektro | 2 | 3 | 1 20
2 | Geschäftsführung | 1 | 2 | 3 |100
3 | Technische Leitung | 34 | 2 | 2 |70
Du brauchst z.B: alle, die Zugriff auf Abteilung 100 haben, und dann?
Du musst immer alle Datensätze durchlaufen und die Rechte extrahieren, da sind Probleme vorprogrammiert.
Mach es richtig und verwende eine Rechte-Tabelle
Z.B.
Code:
LEVEL_ID | ZUGRIFF_AUF_Abteilung
1 | 2
1 | 3
1 | 4
2 | 1
2 | 2
2 | 3
2 | 4
3 | 34
3 | 2
3 | 70
VORTEIL:
- Setzt du den PrimKey auf beide Spalten, kann kein Doppelter Eintrag vorhanden sein (DB prüft)
- So lassen sich einerseits leicht alle Rechte eines bestimmmten Levels abfragen, andererseits kannst du auch problemlos abfragen, wer das Recht auf Zugriff zu Abteilung x hat.
- Beim Löschen eines Levels ist es problemlos die entsprechenden Rechte mit zu löschen.
- Wenn man es korrekt macht, hat bei der Neuanlage eines Levels zunächst niemand Zugriff.
PS
Deine Idee ist Gruppenrechten ähnlich.
Ich würde das wohl sogar auf Userebene machen, also statt der LEVEL_ID die USER_ID verwenden, dann kannst du sogar Ausnahmeregeln definieren.