Hoe zouden jullie producteigenschappen opslaan in een database?
1) Je zou een producttabel kunnen maken met velden voor elke eigenschap.
Dat zou er bijvoorbeeld zo uit zien:
tabel producten
id :: naam :: lengte :: breedte :: kleur
Voorbeelddata:
1 :: kleine rode doos :: 100 :: 75 :: rood
2 :: kleine blauwe doos :: 100 :: 75 :: blauw
3 :: kleine groene doos :: 100 :: 75 :: groen
4 :: normale rode doos :: 150 :: 125 :: rood
5 + 6 blauw + groen
7 :: grote rode doos :: 200 :: 175 :: rood
8 + 9 blauw + groen
Dit levert nogal veel dubbele data op, tijd voor een nieuwe tabel?
2) Je zou een eigenschappentabel (+koppeltabel) erbij kunnen maken.
Bijvoorbeeld:
tabel producten wordt id :: naam
1 :: kleine rode doos
2 - 9 zie boven
tabel eigenschappen
id :: eigenschap :: waarde
1 :: lengte :: 100
2 :: lengte :: 150
3 :: lengte :: 200
4 :: kleur :: rood
etc.
tabel producteigenschappen
productid :: eigenschap id
1 :: 1
1 :: 4
1 :: 7 => kleine rode doos
Deze oplossing lijkt me de beste, hoewel ik nog altijd een hoop dezelfde data heb. Voor elke waarde moet ik namelijk aangeven of het een lengte of breedte betreft. Zoals je in het voorbeeld ziet zijn die niet altijd uitwisselbaar. Je kunt bijvoorbeeld geen doos met breedte 100 krijgen.
De echte database heeft nog veel meer verschillende (en dezelfde) eigenschappen per product.
Ik vroeg me af of ik hier nog wat aan kon doen of dat ik nu gewoon doorgeslagen ben
1) Je zou een producttabel kunnen maken met velden voor elke eigenschap.
Dat zou er bijvoorbeeld zo uit zien:
tabel producten
id :: naam :: lengte :: breedte :: kleur
Voorbeelddata:
1 :: kleine rode doos :: 100 :: 75 :: rood
2 :: kleine blauwe doos :: 100 :: 75 :: blauw
3 :: kleine groene doos :: 100 :: 75 :: groen
4 :: normale rode doos :: 150 :: 125 :: rood
5 + 6 blauw + groen
7 :: grote rode doos :: 200 :: 175 :: rood
8 + 9 blauw + groen
Dit levert nogal veel dubbele data op, tijd voor een nieuwe tabel?
2) Je zou een eigenschappentabel (+koppeltabel) erbij kunnen maken.
Bijvoorbeeld:
tabel producten wordt id :: naam
1 :: kleine rode doos
2 - 9 zie boven
tabel eigenschappen
id :: eigenschap :: waarde
1 :: lengte :: 100
2 :: lengte :: 150
3 :: lengte :: 200
4 :: kleur :: rood
etc.
tabel producteigenschappen
productid :: eigenschap id
1 :: 1
1 :: 4
1 :: 7 => kleine rode doos
Deze oplossing lijkt me de beste, hoewel ik nog altijd een hoop dezelfde data heb. Voor elke waarde moet ik namelijk aangeven of het een lengte of breedte betreft. Zoals je in het voorbeeld ziet zijn die niet altijd uitwisselbaar. Je kunt bijvoorbeeld geen doos met breedte 100 krijgen.
De echte database heeft nog veel meer verschillende (en dezelfde) eigenschappen per product.
Ik vroeg me af of ik hier nog wat aan kon doen of dat ik nu gewoon doorgeslagen ben