Ik heb een vraag m.b.t. performance van de database. Ik twijfel tussen twee opzetten.
De achtergrond is een prijs database, zoiets als de price watch. In de huidige opzet is er een tabel is voor de huidige prijs van het artikel. Dit is dus 1 record per leverancier/item combinatie.
Nu zit is er over na te denken om ook de prijs historie bij te gaan houden, zodat je de prijswijzigingen kan volgen. Hier komen bij mij de vragen naar boven hoe dit het beste aan te pakken. Hopelijk kunnen jullie mij hiermee helpen met jullie inzichten.
Ik had zelf de volgende mogelijke oplossingen in gedachte:
P.s. mocht iemand kunnen helpen met de subquery voor optie 1, dan hoor ik dat uiteraard ook graag.
De achtergrond is een prijs database, zoiets als de price watch. In de huidige opzet is er een tabel is voor de huidige prijs van het artikel. Dit is dus 1 record per leverancier/item combinatie.
Nu zit is er over na te denken om ook de prijs historie bij te gaan houden, zodat je de prijswijzigingen kan volgen. Hier komen bij mij de vragen naar boven hoe dit het beste aan te pakken. Hopelijk kunnen jullie mij hiermee helpen met jullie inzichten.
Ik had zelf de volgende mogelijke oplossingen in gedachte:
- De huidige prijstabel (id|leverancier_id|product_id|prijs) uit te breiden met een datum veld. Hierdoor zou je in theorie kunnen selecteren op de laatste datum. Een lastig punt is gelijk, dat de max(datum) niet automatisch de laatste datum hoeft te zijn voor alle producten. Sommige kunnen een update eerder hebben gehad. Hier zal dus eventueel een subquery aan te pas moeten komen om de laatste datum voor ieder product te selecteren (is dat eigenlijk wel mogelijk ?).
Ook zal de DB relatief groot worden, terwijl deze alleen wordt gebruikt voor de prijs historie en niet voor de ‘normale’ queries op de website voor de producten. Voorzichtig reken levert je 300 producten x 365 dagen x 10 aanbieder = 1.100.000 records op per jaar. - Als alternatief hierop zat ik te denken om naast de huidige tabel een extra tabel te plaatsen voor de historie. Hierdoor krijg je wel dat je dezelfde data in twee tabellen hebt staan, namelijk de laatste toevoeging aan de historie tabel moet overeenkomen met de waarde in de “prijzen” tabel. Je blijft de grote tabel van 1.100.000 regels houden, maar die benader slechts een enkele keer.
P.s. mocht iemand kunnen helpen met de subquery voor optie 1, dan hoor ik dat uiteraard ook graag.
Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl