Ik zit hier met een wat lastige kwestie en heb even jullie hulp nodig
Ik ben bezig aan een modelletje voor een mysql-database en ben alvast aan het bedenken hoe ik 1 en ander met php ga scripten en hoe ik de data uit de database ga halen. Ik heb een tabel met producten waarin de specificaties voorkomen. Nu is het zo dat een bepaald product geleverd kan worden met verschillende opties en deze producten staan dan dus meerdere keren in de tabel (tenminste, dat is mijn opzet).
Nu komt het probleem; ik wil op een pagina de specificaties van een bepaald model opvragen. Als dit model meerdere keren in de tabel voorkomt, met unieke combinaties voor alle opties/specificaties, dan kan ik 2 dingen doen:
- het model heel vaak afdrukken met de specificaties (er zijn soms veel opties dus veel mogelijkheden en dus kan dit een onoverzichtelijke boel worden)
- het model eenmalig afdrukken/weergeven en dan op plekken waar meerdere opties zijn dit aangeven
Nu wil ik graag het tweede doen, even een voorbeeld voor de duidelijkheid:
model: model
breedte: 20cm/30cm/40cm
hoogte: 10cm
enz, in de tabel zijn dit dus dan 3 records (elk met een andere breedte). Nu kom ik er alleen niet uit hoe ik dit in mysql kan realiseren, en met php kom ik er wel uit maar wordt het wat ingewikkeld. De verschillende opties die ik kon verzinnen:
- een aparte tabel waarin de breedte is opgenomen en dan gebruik maken van JOINS; lost het probleem niet zo op want ik heb ten eerste behoorlijk wat kolommen met specificaties die verschillen dus dat worden heel wat kleinere tabellen en ten tweede zal ik in PHP moeten gaan samenvoegen
- gewoon 1 tabel en dan samenvoegen in PHP, lijkt me niet handig want dan moet ik steeds weer een ander record inlezen en dan gaan vergelijken etc etc (lijkt me niet snel en onlogisch)
- gewoon een SELECT uitvoeren voor elke specificatie, dat zijn dus hele kleine query's die wellicht snel zijn uit te voeren (weet ik eigenlijk wel zeker) maar het zijn er wel veel; bij veel pageviews worden dat dus al erg veel kleine query's en dat lijkt me qua performance niet echt super
- dan de laatste mogelijkheid die ik kon verzinnen maar ik weet niet of het kan (
); ik dacht, zoals de topictitel ook al aangaf, misschien heeft MySQL een functie ingebouwd zodat ik alle records kan samenvoegen, waarbij de data gescheiden wordt door komma's of een ander teken. Eigenlijk dus hetzelfde als GROUP BY, maar dan op alle kolommen en met behoud van de data. Ik hoop dat duidelijk is wat ik bedoel.
Heeft iemand misschien nog een ander idee, had ik al een goed idee maar ben ik er onterecht 'ontevreden' over of kan iemand mij helpen met het laatste (heb het niet kunnen vinden maar je weet maar nooit)
Ik ben bezig aan een modelletje voor een mysql-database en ben alvast aan het bedenken hoe ik 1 en ander met php ga scripten en hoe ik de data uit de database ga halen. Ik heb een tabel met producten waarin de specificaties voorkomen. Nu is het zo dat een bepaald product geleverd kan worden met verschillende opties en deze producten staan dan dus meerdere keren in de tabel (tenminste, dat is mijn opzet).
Nu komt het probleem; ik wil op een pagina de specificaties van een bepaald model opvragen. Als dit model meerdere keren in de tabel voorkomt, met unieke combinaties voor alle opties/specificaties, dan kan ik 2 dingen doen:
- het model heel vaak afdrukken met de specificaties (er zijn soms veel opties dus veel mogelijkheden en dus kan dit een onoverzichtelijke boel worden)
- het model eenmalig afdrukken/weergeven en dan op plekken waar meerdere opties zijn dit aangeven
Nu wil ik graag het tweede doen, even een voorbeeld voor de duidelijkheid:
model: model
breedte: 20cm/30cm/40cm
hoogte: 10cm
enz, in de tabel zijn dit dus dan 3 records (elk met een andere breedte). Nu kom ik er alleen niet uit hoe ik dit in mysql kan realiseren, en met php kom ik er wel uit maar wordt het wat ingewikkeld. De verschillende opties die ik kon verzinnen:
- een aparte tabel waarin de breedte is opgenomen en dan gebruik maken van JOINS; lost het probleem niet zo op want ik heb ten eerste behoorlijk wat kolommen met specificaties die verschillen dus dat worden heel wat kleinere tabellen en ten tweede zal ik in PHP moeten gaan samenvoegen
- gewoon 1 tabel en dan samenvoegen in PHP, lijkt me niet handig want dan moet ik steeds weer een ander record inlezen en dan gaan vergelijken etc etc (lijkt me niet snel en onlogisch)
- gewoon een SELECT uitvoeren voor elke specificatie, dat zijn dus hele kleine query's die wellicht snel zijn uit te voeren (weet ik eigenlijk wel zeker) maar het zijn er wel veel; bij veel pageviews worden dat dus al erg veel kleine query's en dat lijkt me qua performance niet echt super
- dan de laatste mogelijkheid die ik kon verzinnen maar ik weet niet of het kan (
Heeft iemand misschien nog een ander idee, had ik al een goed idee maar ben ik er onterecht 'ontevreden' over of kan iemand mij helpen met het laatste (heb het niet kunnen vinden maar je weet maar nooit)