Ik heb een opdracht waarbij ik een database krijg van een bedrijf, en ik moet de gegevens daarin weergeven in enkele lijsten/rapporten.
Mijn probleem is dat deze database naar mijn insziens slecht gestructureerd is, en ik geen oplossing vind voor mijn probleem die niet:
- ofwel massa's queries nodig heeft
- ofwel een verandering in de structuur van de database behoeft, maar daar is dat bedrijf niet happig om.
Het betreft een tabel met daarin produkten.
De voor mijn probleem relevante produkt velden zijn:
produktmerk - produktnaam - produktformaat - produktprijs
Deze tabel is op deze manier opgevuld:
merk1 - produkt1 - formaat1 - 10
merk2 - produkt2 - formaat1 - 20
merk2 - produkt2 - formaat2 - 25
.
.
Merk op dat produkten als verschillende records opgeslagen zijn als hun formaat (en de bijhorende prijs) verschilt.
Nu wordt ik verondersteld om een lijst te genereren met bijvoorbeeld 100 produkten, waarvan ik moet weergeven: produktmerk - produktnaam en de formaten waarin het te krijgen is.
Ik bedoel dus:
De verschillende merk-produkt combinaties zoeken is geen probleem: gewoon een SELECT DISTINCT en ik heb alle produkten maar 1 keer, ongeacht of ze 1 keer of 5 keer in de tabel zitten met verschillende formaten.
Maar hoe kan ik zo handig mogelijk de verschillende formaten ophalen? Per produkt een query doen om te kijken welke formaten er aanwezig zijn? Dat betekent 100 extra queries als ik een lijst van 100 produkten moet weergeven...
Zie ik een elegante methode over het hoofd om toch te bereiken wat ik wil? M.a.w. zou een ietwat geavanceerdere query me toch de benodigde informatie kunnen opleveren?
Ik wil dus dat er van een situatie waarbij verschillende formaten van een item als afzonderlijke produkten in de database zitten (produktmerk en produktnaam zijn identiek), naar een situatie waarbij ze beschouwd worden als 1 produkt met zijn formaten.
Verdere technische info: de database in kwestie is mysql.
Mijn probleem is dat deze database naar mijn insziens slecht gestructureerd is, en ik geen oplossing vind voor mijn probleem die niet:
- ofwel massa's queries nodig heeft
- ofwel een verandering in de structuur van de database behoeft, maar daar is dat bedrijf niet happig om.
Het betreft een tabel met daarin produkten.
De voor mijn probleem relevante produkt velden zijn:
produktmerk - produktnaam - produktformaat - produktprijs
Deze tabel is op deze manier opgevuld:
merk1 - produkt1 - formaat1 - 10
merk2 - produkt2 - formaat1 - 20
merk2 - produkt2 - formaat2 - 25
.
.
Merk op dat produkten als verschillende records opgeslagen zijn als hun formaat (en de bijhorende prijs) verschilt.
Nu wordt ik verondersteld om een lijst te genereren met bijvoorbeeld 100 produkten, waarvan ik moet weergeven: produktmerk - produktnaam en de formaten waarin het te krijgen is.
Ik bedoel dus:
code:
1
2
3
4
5
| merk1 - produkt1
formaat1 (10 euro)
merk2 - produkt2
formaat1 (20 euro)
formaat2 (25 euro) |
De verschillende merk-produkt combinaties zoeken is geen probleem: gewoon een SELECT DISTINCT en ik heb alle produkten maar 1 keer, ongeacht of ze 1 keer of 5 keer in de tabel zitten met verschillende formaten.
Maar hoe kan ik zo handig mogelijk de verschillende formaten ophalen? Per produkt een query doen om te kijken welke formaten er aanwezig zijn? Dat betekent 100 extra queries als ik een lijst van 100 produkten moet weergeven...
Zie ik een elegante methode over het hoofd om toch te bereiken wat ik wil? M.a.w. zou een ietwat geavanceerdere query me toch de benodigde informatie kunnen opleveren?
Ik wil dus dat er van een situatie waarbij verschillende formaten van een item als afzonderlijke produkten in de database zitten (produktmerk en produktnaam zijn identiek), naar een situatie waarbij ze beschouwd worden als 1 produkt met zijn formaten.
Verdere technische info: de database in kwestie is mysql.