also nochmal :
Du hast 3 Tabellen in der Datenbank!
Tabelle 1 - admins
mit den spalten
adid - die id spalte
name - der name des admins
Tabelle 2 - kategorien
catid - id der kategorie
name - name der kategorie
Tabelle 3 - Kategorienadmins
catid - bezieht sich auf die id der Tabelle kategorie
adid - id bezieht sich auf die id des admins.
---------------------------------
Wenn es also einen Admin Blizzard gibt
so steht der in der Tabelle
Admins drinne
adid name
1 Blizzard
es gibt die Kategorie FreeSexNews
dann steht diese in der tabelle Categories drinne
catid name
12 FreeSexNews
Wenn der Admin irgendwelche Rechte auf in der Kategorie FreeSexNews haben soll so muss er durch die Tabelle catadmins mit dieser Kategorie verbunden werden.
durch den Eintrag :
adid catid
1 12
Das heisst der Admin mit der id 1 !! hat rechte in der categorie 12
Dies kann mann testen durch
oben beschriebens
PHP:
$blub = mysql_query("select * from catadmin where catid = $KategorieId and adid = $AdminId;");
if(@mysql_num_rows($blub))
... posten gewähren
else
... posten verhindern
mysql_num_rows fragt einfach wieviele "Reihen" ergebniss bekomme ich wenn ich den Select ausführe. Das heisst wenn mysql_num_rows() mindestens 1 "Reihe" zurueckliefert wird das posten gewährt wenn nicht dann wird es verhindert.
Sprich der Admin Blizzard darf in der Kategorie FreeSexNews posten.
Das ist jetzt absoluter rohbau aber das ist genau nach dem Prinzip nachdem mann rechteverteilung aufbaut.
mysql ist eine Relative Datenbank.
Das heisst mann verbindet verschiedene Datensätze durch bestimmte als Idetifier genutzte Spalten.
Wie in dem fall die Administratorid mit der Categorienid.
Das hat den vorteil mann kann sehr leicht die Datenbank erweitern.
Zum beispiel kann mann neue Rechte einführen und muss nur noch die Tabelle
kategorienadmins ändern.
z.b.
adid catid lesen schreiben loeschen
1 12 1 1 0
somit kann mann z.B. dem Admin Blizzard in der Kategorie FreeSexNews das lesen dieser Kategorie erlauben das schreiben ebenso aber das loeschen von beiträgen verbieten.
usw.