Houd een lijst bij van kamerreserveringen met een start- en einddatum. Probeer beschikbaarheidsslots niet te modelleren en beschouw uw reserveringsdatabase niet als een spreadsheet. Dit zal je alleen maar leiden tot zinloze complexiteit. Datumbereiken zijn gemakkelijk om mee te werken.
Het belangrijkste om te weten is hoe u overlappende perioden in uw zoekopdrachten kunt detecteren. Dit is de basis om te testen of een kamer al gereserveerd is of vrij is. Stel dat u een RESERVERING-tabel heeft en dat u reserveringen wilt vinden die een bepaald datumbereik overlappen:@FromDate en @ToDate. Uw WHERE-clausule voor het vinden van overlappende reserveringen ziet er als volgt uit:
WHERE RESERVATION.start_date < @ToDate
AND RESERVATION.end_date > @FromDate
Beschikbare kamers hebben geen conflicten (d.w.z. WHERE NOT IN...) en niet-beschikbare kamers hebben een conflict.