MySQL Forums
Forum List  »  German

Produktdatenbank mit Produkteigenschaften
Posted by: Simon Maier
Date: March 11, 2012 02:03PM

Ich möchte eine Produktdatenbank erstellen.

Ich dachte mir das bisher so:

Tabelle1:
produkt_id produkt-name
1 Staubsauger
2 Gartensäge
3 Blumentopf


Tabelle2: (Produkt eigenschaften)
id produkt_id eigenschaft wert_float wert_string
1 1(staubsauger) lautstärke 100dB
2 1(Staubsauger) farbe blau
3 2(Gartensäge) farbe blau
4

die Eigenschaften sollen unbegrenzt erweiterbar sein, ein Produkt soll also auch 50 Produkteigenschaften haben können.

Und ich möchte nach allen erdenklichen Kombinationen suchen können.

z.B. Zeige alle Produkte die (farbe = blau) und (lautstärke >= 100dB) und (leistung < 20PS) unsw..


Ist der Tabellenaufbau so in Ordnung?
Ich möchte nun suchen können welche Geräte die farbe blau haben und lauter als 90dB sind.

In etwa so:
SELECT * FROM `eigenschaft` WHERE
(eigenschaft = lautstärke AND wert_float = 100 ) OR
(eigenschaft = farbe AND wert_string = "blau")

Das Problem hieran ist, es funzt so einfach nicht.
Ergebnis ist
er zeigt nun alle Produkte untereinander an
staubsauger
staubsauger
staubsauger
gartensäge
gartensäge

ich könnte das nun mit einem group by beheben, dann wuerde jedes gerät nur einzelnd angezeigt. jedoch dann auch immer nur die erste geräte ID.

Ich dachte schon an ein Table self join, nur ich kann doch nicht bei einem SELECT
von 20 Produkteigenschaften 20x ein selfjoin machen


Hat jemand soetwas schonmal gebraucht und eine Idee wie man das umsetzt?

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.