Het probleem:
Voor de verhuur van een accomodatie moet variabel de prijs berekend kunnen worden. Een bezoeker wil bijvoorbeeld een accomodatie boeken van 25-04-2007 tot 05-05-2007. Voor iedere accomodatie zijn er verschillende periode die allemaal een andere dagprijs hebben. Bijvoorbeeld van 01-01-2007 tot 30-04-2007 is de dagprijs 45 euro, en van 01-05-2007 tot 30-06-2007 is de dagprijs 50 euro.
De periodes met dagprijzen staan dus in de database (Mysql). Een begindatum, een einddatum, en de prijs voor die periode.
Vragen:
1. Is het mogelijk om met behulp van een, of misschien twee queries alle periodes op te halen die van toepassing zijn op een bepaalde reserveringsperiode? Dus als ik zeg: Ik wil alle prijsperiodes die van toepassing zijn op 25-04-2007 tot 05-05-2007 dat ik dan 01-01-2007 tot 30-04-2007 en 01-05-2007 tot 30-06-2007 terugkrijg?
2. Wat is jou inziens de meest efficiente/snelste manier om dit probleem te tackelen?
De oplossing die ik nu voor ogen heb, maar me totaal inefficient lijkt:
- Haal alle prijsperiodes op.
- Controleer of de begindatum en de einddatum van een reservering binnen een van de prijsperiodes valt.
- Zo ja, bereken het aantal dagen, doet dat keer, etc.... Klaar.
- Zo nee, bepaal de beginperiode waarin de reservering valt.
- Bepaal eventueel nog een tussenliggende periode.
- Bepaal de laatste periode.
- Reken de boel uit.
Vragen staan hierboven al. Als ik zo kijk naar de mogelijke Mysql functies is date_diff nog een van de weinige functies die me misschien een beetje kan helpen.
Voor de verhuur van een accomodatie moet variabel de prijs berekend kunnen worden. Een bezoeker wil bijvoorbeeld een accomodatie boeken van 25-04-2007 tot 05-05-2007. Voor iedere accomodatie zijn er verschillende periode die allemaal een andere dagprijs hebben. Bijvoorbeeld van 01-01-2007 tot 30-04-2007 is de dagprijs 45 euro, en van 01-05-2007 tot 30-06-2007 is de dagprijs 50 euro.
De periodes met dagprijzen staan dus in de database (Mysql). Een begindatum, een einddatum, en de prijs voor die periode.
Vragen:
1. Is het mogelijk om met behulp van een, of misschien twee queries alle periodes op te halen die van toepassing zijn op een bepaalde reserveringsperiode? Dus als ik zeg: Ik wil alle prijsperiodes die van toepassing zijn op 25-04-2007 tot 05-05-2007 dat ik dan 01-01-2007 tot 30-04-2007 en 01-05-2007 tot 30-06-2007 terugkrijg?
2. Wat is jou inziens de meest efficiente/snelste manier om dit probleem te tackelen?
De oplossing die ik nu voor ogen heb, maar me totaal inefficient lijkt:
- Haal alle prijsperiodes op.
- Controleer of de begindatum en de einddatum van een reservering binnen een van de prijsperiodes valt.
- Zo ja, bereken het aantal dagen, doet dat keer, etc.... Klaar.
- Zo nee, bepaal de beginperiode waarin de reservering valt.
- Bepaal eventueel nog een tussenliggende periode.
- Bepaal de laatste periode.
- Reken de boel uit.
Vragen staan hierboven al. Als ik zo kijk naar de mogelijke Mysql functies is date_diff nog een van de weinige functies die me misschien een beetje kan helpen.