sql >> Database >  >> RDS >> Mysql

databaseschema voor productkenmerken

Wat u probeert te bereiken is een Entity-Attribute-Value (EAV) of mogelijk een rijmodellering oplossing. Merk op dat dit type structuur grotendeels wordt afgekeurd om een ​​groot aantal goede redenen.

Ik heb echter betoogd (bijv. hier , hier , hier , en hier ) dat EAV KWAAD is, behalve wanneer dat niet zo is. Een van die zeldzame uitzonderingen is in het geval van een productcatalogus waar u de eigenschappen van producten bijhoudt en waar die eigenschappen niet zo interessant zijn (voor uw systeem! ) behalve voor zover u deze moet ophalen en afdrukken op een productwebpagina of een vergelijkingstabel, enz.

Overweeg een ontwerp als dit:

Wat u in een model als dit doet, is beschrijven welke attributen producten in een bepaalde categorie zouden moeten hebben, welke waarden die attributen zouden kunnen hebben en welke waarden elk specifiek product wel heeft voor elk attribuut.

Dit ontwerp heeft alle gebruikelijke beperkingen die EAV oplegt. Mocht je echter vragen willen stellen als:"Welke kralen hebben een diameter van 8mm?" dat is vrij eenvoudig.




  1. SQL Server recursieve self-join

  2. Vul land en stad automatisch in vanaf postcode, en omgekeerd

  3. Krijg een lijst met tabellen met of zonder primaire sleutelbeperking in alle databases van SQL Server-instantie - SQL Server / TSQL-zelfstudie, deel 61

  4. MySQL now() verander tijdzone