phpbar.de logo

Mailinglisten-Archive

[php] OT: Datenbankstruktur

[php] OT: Datenbankstruktur

Andre Gemünd listen at scroogie.de
Don Jul 31 13:04:16 CEST 2003


Hallo Liste,

Ich entschuldige mich direkt mal für meine OffTopic-Frage, aber
vor kurzem (genauer gesagt am 07.09. im Thread "wertepaare (x/y) in DB 
speichern" von Olaf Gleba) wurde in der Liste über die optimale 
DB-Struktur für ein Problem diskutiert.
Da mir an dieser Stelle anscheinend die Grundlagenkentnisse fehlen stehe 
ich vor einem ähnlichen Problem, die Vorraussetzungen sind folgende:

Ich habe eine variable Anzahl Benutzer, die auf eine variable Anzahl 
Verzeichnisse Zugriff bekommt, oder eben nicht. Über die Benutzer werden 
natürlich noch allerhand anderer Informationen gespeichert, ebenso über 
die Verzeichnisse, und da ich sowieso den Thread über Normalisierung 
gelesen hatte dachte ich, ich werde es folgendermaßen lösen:

tabelle benutzer
(id, name, pw)
tabelle verzeichnisse
(id, name, details)
tabelle benutzer2verzeichnisse
(benutzerid, verzeichnissid)

Die letzte Tabelle soll aussagen, dass wenn ein Datensatz 2/3 existiert, 
das der Benutzer mit der ID 2 Zugriff auf das Verzeichnis mit der ID 3 
hat. Klingt eigentlich logisch, oder?
Jetzt möchte ich aber eine Übersichtstabelle aller Zugriffsrechte 
darstellen:

    dir1    dir2    dir3
user1     1     0     1
user2     0     0     0
user3     0     1     0

Aber wie kann ich auf eine vernünftige Art und Weise die Daten so 
aufarbeiten? Ich könnte mit PHP jetzt eine Liste aller User abfragen und 
  dazu eine Liste aller Verzeichnisse abfragen. Für jeden einzelnen User 
könnte ich dann für jedes Verzeichniss ein Query absenden was prüft ob 
der Eintrag in der Verknüpfungstabelle vorhanden ist...
Die Anzahl der Querys schiesst aber so immens schnell in die Höhe, und 
im Allgemeinen sieht mir das auch irgendwie nicht sehr elegant aus.
Irgendwie habe ich das Gefühl in meinem Knopf sitzt ein Knoten den ich 
gerade nicht raus bekomme, vielleicht sollte ich auch die ganze Struktur 
 über den Haufen werfen und es anders machen?
Schon im Vorraus vielen Dank

André Gemünd



php::bar PHP Wiki   -   Listenarchive