Mysql
 sql >> Database >  >> RDS >> Mysql

Come gestire la disponibilità delle camere in base ai giorni o ai mesi di occupazione

Conserva un elenco di prenotazioni di camere che hanno una data di inizio e una data di fine. Non cercare di modellare gli slot di disponibilità o pensare al database delle prenotazioni come a un foglio di calcolo. Questo ti porterà solo a una complessità inutile. È facile lavorare con gli intervalli di date.

La cosa più importante da sapere è come rilevare intervalli di date sovrapposti nelle tue query. Questa è la base per verificare se una camera è già prenotata o se è libera. Supponiamo che tu abbia una tabella PRENOTAZIONE e desideri trovare prenotazioni che si sovrappongono a un determinato intervallo di date:@FromDate e @ToDate. La tua clausola WHERE per trovare prenotazioni sovrapposte è simile a questa:

WHERE RESERVATION.start_date < @ToDate 
  AND RESERVATION.end_date > @FromDate

Le camere disponibili non avranno conflitti (es. WHERE NOT IN...) e le camere non disponibili avranno un conflitto.