Hallo,
Ich wollte ein dynamisches Attributs-System für Artikel aufbauen. Es geht also darum Artikeln Attribute wie z.B. farbe, groesse, gewicht etc. zu geben.
Da ich nun keine Tabelle anlegen möchte in der Art spalte1=Art-Nr,spalte2=farbe,spalte3=groesse etc... sondern die Möglichkeit haben wollte, ohne die Struktur der Tabelle zu Ändern, neue Attribute hinzuzufügen, habe ich eine Tabelle der Art spalte1=Art-Nr,spalte2=Attribute-Name,spalte3=Attribute_Wert gemacht.
Nun habe ich aber ein für mich nicht lösbares Problem wenn ich nach Artikeln mit bestimmten Attributen suche.
Hier mal ein Beispiel-Tabelle
Wenn ich nun die Artikel selektieren will die nur rot sind ist das ja kein Problem. Sobald ich aber Artikel nach mehreren Attributen selektieren will z.B. farbe=rot und gewicht=10 etc. bin ich SQL technisch am Ende.
Sowas in der Art (funktioniert ja so nicht)
select artnr from artikel where (atr_name=farbe and atr_wert=rot) and (atr_name=gewicht and atr_wert=10)
Ist sowas Üerhaupt in SQL mölich?
Wie muesst der Query den ausschauen damit er alle artnr liefert auf die diese Bedingungen zutreffe?
Mittlerweile bin ich auf eine Löung gekommen sie erscheint mir aber wenig praktikabel da ich glaub das es ziemlich auf die Performance geht.
Und zwar
select artnr from artikel as a1, artikel as a2 where a1.artnr=a2.artnr and a1.atr_name='farbe' and a1.atr_wert='rot' and a2.atr_name='groesse' and a2.atr_wert='10'
nun koennte ich ja fü jedes Attribute das hinzukommt den from Teil und den Where Teil erweitern. Die Frage ist ob das sinnvoll ist wenn ich nun 10 oder 100 Attribute habe.
Ich wollte ein dynamisches Attributs-System für Artikel aufbauen. Es geht also darum Artikeln Attribute wie z.B. farbe, groesse, gewicht etc. zu geben.
Da ich nun keine Tabelle anlegen möchte in der Art spalte1=Art-Nr,spalte2=farbe,spalte3=groesse etc... sondern die Möglichkeit haben wollte, ohne die Struktur der Tabelle zu Ändern, neue Attribute hinzuzufügen, habe ich eine Tabelle der Art spalte1=Art-Nr,spalte2=Attribute-Name,spalte3=Attribute_Wert gemacht.
Nun habe ich aber ein für mich nicht lösbares Problem wenn ich nach Artikeln mit bestimmten Attributen suche.
Hier mal ein Beispiel-Tabelle
Wenn ich nun die Artikel selektieren will die nur rot sind ist das ja kein Problem. Sobald ich aber Artikel nach mehreren Attributen selektieren will z.B. farbe=rot und gewicht=10 etc. bin ich SQL technisch am Ende.
Sowas in der Art (funktioniert ja so nicht)
select artnr from artikel where (atr_name=farbe and atr_wert=rot) and (atr_name=gewicht and atr_wert=10)
Ist sowas Üerhaupt in SQL mölich?
Wie muesst der Query den ausschauen damit er alle artnr liefert auf die diese Bedingungen zutreffe?
Mittlerweile bin ich auf eine Löung gekommen sie erscheint mir aber wenig praktikabel da ich glaub das es ziemlich auf die Performance geht.
Und zwar
select artnr from artikel as a1, artikel as a2 where a1.artnr=a2.artnr and a1.atr_name='farbe' and a1.atr_wert='rot' and a2.atr_name='groesse' and a2.atr_wert='10'
nun koennte ich ja fü jedes Attribute das hinzukommt den from Teil und den Where Teil erweitern. Die Frage ist ob das sinnvoll ist wenn ich nun 10 oder 100 Attribute habe.
Comment