Beim erklären bin ich noch nie gut gewessen.
Ich geb dir ein Beispiel wenn ich die Alte Tabellen struktur her nehmen.
gruppen:
-id
-name
-Berechtigung
user:
-userid
-username
-f_gruppe (Fremdschlüssel aus Gruppen Tabelle)
privatkunden:
-id
-kundenfelder
f_userid (Fremdschlüssel aus user Tabelle)
Und man will nun die Berechtigung eines bestimmten user aberfagen der in eine Gruppenberechtigung hat dann sieht das so aus:
SELECT Berechtigung,name FROM gruppen,user WHERE user.f.gruppe=gruppe.id and user.userid='1';
Hier wird die Gruppe abgefragt die der Mitarbeiter mit der nummer 1 angehört sowie die Gruppenberechtigung inklusive des Berechtigungsnamen.
(Wobei wenn der name eindeutig ist man nicht den tabellennamen davor schreiben muß
sollte die namen doppelt vorkommen dann muß man den Tabellennammer immer davor schreichen siehe SELECT Berechtigung,name könnte auch lauten SELECT gruppen.Berechtigung,gruppen.name )
----------------------------------------------------------------------------------------------------------------------------------
Wenn ich die Letzte gepostet Tabellen strukur hernehme
Mitarbeiter:
-id
-name
-f_gruppenid ( Fremdschlüssel)
Gruppen:
-id
-name
Berechtigungen:
-id
-level
-f_Mitarbeiterid (Fremdschlüssel)
Kunden:
-id
-name
-f_Mitarbeiterid (Fremdschlüssel)
Gruppen_kunden:
-f_gruppenid (Primarykey)
-f_kundenid (Primarykey)
Würde so eine Abrage nach der Berechtigung und dem Gruppen namen so ausehen
SELECT level,name FROM Berechtigung,Gruppen,Mitarbeiter WHERE Mitarbeiter.id=Berechtigung.f_Mitarbeiterid AND Gruppen.id=Mitarbeiter.f_gruppenid AND Mitarbeiter.id='1'
Hier wird also abgefragt welcher gruppe und welchen berechtigung level der Mitarbeiter mit der nummer 1 hat.
Mfg Splasch