Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datenbankschema für Produktattribute

Was Sie erreichen möchten, ist ein Entity-Attribute-Value (EAV) oder möglicherweise eine Zeilenmodellierung Lösung. Beachten Sie, dass diese Art von Struktur aus einer Vielzahl von ziemlich guten Gründen weitgehend verpönt ist.

Ich habe jedoch argumentiert (z. B. hier , hier , hier , und hier ), dass EAV BÖSE ist, außer wenn es nicht so ist. Eine dieser seltenen Ausnahmen ist ein Produktkatalog, in dem Sie die Eigenschaften von Produkten verfolgen und diese Eigenschaften nicht so interessant sind (für Ihr System!). ), es sei denn, Sie müssen diese abrufen und auf einer Produktwebseite oder einem Vergleichsraster usw. ausdrucken.

Betrachten Sie ein Design wie dieses:

Was Sie in einem Modell wie diesem tun, ist zu beschreiben, welche Attribute Produkte in einer bestimmten Kategorie haben sollten, welche Werte diese Attribute haben könnten und dann, welche Werte jedes spezifische Produkt für jedes Attribut hat.

Dieses Design hat alle üblichen Einschränkungen, die EAV auferlegt. Wenn Sie jedoch Fragen stellen möchten wie:"Welche Perlen haben einen Durchmesser von 8 mm?" das ist ziemlich einfach.