Bij mijn webwinkel wil ik bij elk product ook specificaties tonen. Ik vraag me echter af wat de beste manier is om dit te doen. Nu doe ik het als volgt:
Ik heb een eigenschappen tabel waarin ik alle eigenschappen in zet die een product kan hebben. Aangezien producten uit dezelfde categorie ook dezelfde eigenschappen hebben, heb ik deze dus gekoppeld aan de de tabel categorieen.
De waardes van deze eigenschappen zet ik in de tabel specificaties. Ik leg een link tussen de tabellen eigenschappen en specificaties door het id van eigenschappen op te nemen bij specificaties. Ook geef ik in deze tabel aan bij welk product een specificatie hoort.
Is dit nou een goede manier of kan ik het beter anders doen? Ik had het eigenlijk zo gedaan omdat het mij handig leek om de eigenschappen toe te wijzen aan een categorie, maar loop nu toch tegen wat 'problemen'. Zodra ik namelijk bijvoorbeeld nog geen specificaties heb toegewezen aan een product wordt er in principe niks weergeven en moet ik dus weer een heel andere query gaan uitvoeren waarbij ik de eigenschappen van de betreffende categorie opvraag. Als er dus zegmaar wel resultaten zijn haal ik ze op via de tabellen eigenschappen en specificaties en als er geen resultaten zijn haal ik ze op via eigenschappen en categorieen. Is dit niet vreemd en kan ik het dus niet beter gewoon steeds de eigenschappen toewijzen per product in plaats van eigenschappen toevoegen aan de categorie?
Mijn vraag is dus eigenlijk hoe ik het beste de productspecificaties kan opslaan in de database. Ik hoop dat ik mijn 'probleem' een beetje duidelijk heb uitgelegd en dat iemand een antwoord weet.
Mijn huidige database model:
CATEGORIEEN
id naam parent
1 Audio 0
2 Losse systemen 1
3 Speakers 1
4 Overige 1
5 Cd spelers 2
6 Dvd spelers 2
7 Mp3spelers 4
PRODUCTEN
id naam categorie_id
1 ipodnano8gb 7
2 nwx 2gb 7
EIGENSCHAPPEN
id naam parent categorie_id
1 Algemeen 0 7
2 Type opslag 1 7
3 Opslagcapaciteit 1 7
SPECIFICATIES
id waarde eigenschap_id product_id
1 Flash geheuegen 2 1
2 8GB 3 1
Ik heb een eigenschappen tabel waarin ik alle eigenschappen in zet die een product kan hebben. Aangezien producten uit dezelfde categorie ook dezelfde eigenschappen hebben, heb ik deze dus gekoppeld aan de de tabel categorieen.
De waardes van deze eigenschappen zet ik in de tabel specificaties. Ik leg een link tussen de tabellen eigenschappen en specificaties door het id van eigenschappen op te nemen bij specificaties. Ook geef ik in deze tabel aan bij welk product een specificatie hoort.
Is dit nou een goede manier of kan ik het beter anders doen? Ik had het eigenlijk zo gedaan omdat het mij handig leek om de eigenschappen toe te wijzen aan een categorie, maar loop nu toch tegen wat 'problemen'. Zodra ik namelijk bijvoorbeeld nog geen specificaties heb toegewezen aan een product wordt er in principe niks weergeven en moet ik dus weer een heel andere query gaan uitvoeren waarbij ik de eigenschappen van de betreffende categorie opvraag. Als er dus zegmaar wel resultaten zijn haal ik ze op via de tabellen eigenschappen en specificaties en als er geen resultaten zijn haal ik ze op via eigenschappen en categorieen. Is dit niet vreemd en kan ik het dus niet beter gewoon steeds de eigenschappen toewijzen per product in plaats van eigenschappen toevoegen aan de categorie?
Mijn vraag is dus eigenlijk hoe ik het beste de productspecificaties kan opslaan in de database. Ik hoop dat ik mijn 'probleem' een beetje duidelijk heb uitgelegd en dat iemand een antwoord weet.
Mijn huidige database model:
CATEGORIEEN
id naam parent
1 Audio 0
2 Losse systemen 1
3 Speakers 1
4 Overige 1
5 Cd spelers 2
6 Dvd spelers 2
7 Mp3spelers 4
PRODUCTEN
id naam categorie_id
1 ipodnano8gb 7
2 nwx 2gb 7
EIGENSCHAPPEN
id naam parent categorie_id
1 Algemeen 0 7
2 Type opslag 1 7
3 Opslagcapaciteit 1 7
SPECIFICATIES
id waarde eigenschap_id product_id
1 Flash geheuegen 2 1
2 8GB 3 1