phpbar.de logo

Mailinglisten-Archive

[php] bit operations

[php] bit operations

friedhelm betz php_(at)_phpcenter.de
Wed, 23 May 2001 01:46:19 +0200


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