sql >> Database >  >> RDS >> Mysql

De beschikbaarheid van kamers beheren op basis van dagen of maanden bezetting

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.




  1. Aanroep naar een lidfunctie rowCount() op een niet-object

  2. Bericht weergeven wanneer er geen resultaten zijn gevonden in PHP MySQL-zoekopdracht

  3. App werkt niet meer vanwege database

  4. De tijdzone van de MySQL-server wijzigen