sql >> Base de Datos >  >> RDS >> Mysql

Cómo gestionar la disponibilidad de habitaciones en función de días o meses de ocupación

Mantenga una lista de reservas de habitaciones que tengan una fecha de inicio y una fecha de finalización. No intente modelar los espacios de disponibilidad ni piense en su base de datos de reservas como una hoja de cálculo. Esto solo te llevará a una complejidad sin sentido. Es fácil trabajar con intervalos de fechas.

Lo más importante que debe saber es cómo detectar rangos de fechas superpuestas en sus consultas. Esta es la base para probar si una habitación ya está reservada o si está libre. Supongamos que tiene una tabla de RESERVA y desea encontrar reservas que se superpongan a un intervalo de fechas determinado:@FromDate y @ToDate. Su cláusula WHERE para encontrar reservas superpuestas se ve así:

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

Las habitaciones disponibles no tendrán conflictos (es decir, DONDE NO EN...) y las habitaciones no disponibles tendrán un conflicto.