phpbar.de logo

Mailinglisten-Archive

Wie speichert man Attribute? war: Where-Klausel mit 100 Oder-Zeilen

Wie speichert man Attribute? war: Where-Klausel mit 100 Oder-Zeilen

Patrick Bierans mysql-de_(at)_lists.bttr.org
Fri, 26 Jul 2002 17:32:30 +0100


> from: "Arash Yalpani", subject: "Wie speichert man Attribute? war: Where-Klausel m"

> Manche hat jeder Benutzer, manche davon nur bestimmte.
> Man muß nach Eigenschaften filtern können und es muss möglich sein, über
> eine Browser-GUI einfach neue Felder hinzuzufügen.
> 
> Wie organisiert man so etwas

Die schnelle Antwort:
Es gibt eine Tabelle Attribute, dessen Datensätze über den 
Fremdschlüssel der Tabelle Benutzer einem Benutzer zugeordnet
werden können. Jedes Attribut hat zwei Felder: Name und Wert.
Nachteil: Der eine Benutzer schreibt "Name", der andere aber
"Vorname" ins Feld Name. Wie soll man da suchen?

Die kompliziertere Antwort:
Das Feld Name der Tabelle Attribute wird ersetzt durch einen
Fremdschlüssel auf die Tabelle Attributtyp. Der Benutzer kann
dann beliebeige Attribute aus der Liste der Attributtypen aus-
wählen. Läßt sich schön durchsuchen.

Die perfektionistische Antwort:
Mehrere Attribute werden zu einem Attributset zusammengefaßt.
Beim Benutzer wird dann hinterlegt, welche Sets er hat. Somit
kann der Benutzer sich ein Set auswählen und hat dann gleich
mehrere Attribute bekommen.

Die extreme Variante:
Für jedes Attributset kann dann eine eigene Formularmaske hinter-
legt werden.

Die reduzierte Variante:
Die Attribute werden nicht einzeln gespeichert, sondern für jedes
Attributset gibt es eine Tabelle mit den Attributen als ein
Datensatz. Macht einiges einfacher, erfordert aber mehr Tabellen.
Das Hinzufügen von neuen Attributsets erforgert dann immer eine neue
Tabelle und entsprechende INSERT/UPDATE-Befehle (da läßt sich aber
ein dynamischer Statement-Generator bauen)


Schön, nicht?


Stay cool, don't close the fridge

P.Bierans

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive