sql >> Databasteknik >  >> RDS >> Mysql

databasschema för produktattribut

Det du försöker uppnå är ett Entity-Attribute-Value (EAV) eller möjligen en radmodellering lösning. Observera att den här typen av struktur till stor del är ogillad av en mängd olika bra skäl.

Jag har dock hävdat (t.ex. här , här , här , och här ) att EAV är OND, förutom när den inte är det. Ett av de sällsynta undantagen är i fallet med en produktkatalog där du spårar egenskaperna hos produkter och där dessa egenskaper inte är så intressanta (för ditt system! ) förutom i den mån du behöver hämta dessa och skriva ut dem på en produktwebbsida eller ett jämförelsenät etc.

Tänk på en design som denna:

Vad du gör i en modell som denna är att beskriva vilka attribut produkter i en given kategori borde ha, vilka värden dessa attribut kan ha och sedan vilka värden varje specifik produkt har för varje attribut.

Denna design har alla de vanliga begränsningarna som EAV ålägger. Men om du vill ställa frågor som:"Vilka pärlor har en diameter på 8 mm?" det är ganska enkelt.




  1. 3 sätt att kontrollera kolumndatatyp i Oracle

  2. Hur frågar jag en json-kolumn för tomma objekt?

  3. Klassen hittades inte laddar JDBC org.postgresql.Driver

  4. Hur man aktiverar bulkbehörighet i SQL Server