Mailinglisten-Archive |
Hallo Wolfgang,
you wrote:
>> Hallo
>>
>> Ich experimentiere gerade mit bit operationen und versuche ein permission
>> system zu bauen. Das funktioniert auch recht gut aber wie schreibt man die
>> Daten in eine Datenbank?
>> Schreibt man die dec oder bin werte in ein Feld und ist es möglich in der
>> Datenbank alle Datensätze bzw. User zu suchen die bestimme Rechte haben?
>>
> Ich will mein Anfrage verdeutlichen, da ich mein Problem nicht wirklich
> beschrieben habe.
> Also ich habe zum Beispiel 4 Recht
> lesen - 1
> ändern - 2
> löschen - 3
> verschieben - 4
> also:
> 00000001
> 00000010
> 00000100
> 00001000
> Wenn nun ein User lesen und schreiben darf hat er folgende Nummer:
> 3 oder 00000011
> Nun will ich diese Information in einer DB anlegen, soll ich da nun besser 3
> oder den bin Wert speichern?
> Mit welcher Art kann ich dann später besser weiterarbeiten? Auch im Hinblick
> auf eine Suche aller User mit bestimmten Rechten -> Ich suche also zum
> Beispiel alle User die schreiben und löschen dürfen oder alle die nur
> schreiben dürfen. Ist das überhaupt möglich und wie realisiere ich die Suche
> am besten über SQL? Also ich will nicht zuerst alle Daten aus der DB
> auslesen und dann mit PHP verarbeiten sonderen gleich über SQL selektieren.
> Ich hoffe jetzt ist es klarer.
> Danke
> Wolfi
mein vorschlag: deine binäre schreibweise entsprechend in eine
tabellenstruktur 1:1 umsetzen etwa so:
tablename: rechte
user verschieben loeschen aendern lesen
A 0 0 0 1
B 0 0 1 1
C 0 1 1 1
D 0 0 1 1
das könnte zumindest dein problem mit der suche nach einzelnen (und
mehreren) rechten lösen.
SELECT user From rechte Where aendern=1 , aendern beinhaltet doch das
leserecht?
schreiben und löschen:
SELECT user From rechte Where löschen=1 , oder gibt´s das recht löschen
ohne schreiben? dann:
SELECT user From rechte Where (löschen=1 & aendern=1)
performance? hmm...
friedhelm
php::bar PHP Wiki - Listenarchive