Поддържайте списък с резервации на стаи, които имат начална и крайна дата. Не се опитвайте да моделирате слотове за наличност и не мислете за вашата база данни с резервации като за електронна таблица. Това просто ще ви доведе до безсмислена сложност. С диапазоните от време се работи лесно.
Най-важното нещо, което трябва да знаете, е как да откриете припокриващи се периоди от време във вашите заявки. Това е основата за тестване дали една стая вече е резервирана или е свободна. Да приемем, че имате таблица РЕЗЕРВАЦИЯ и искате да намерите резервации, които се припокриват с даден период от време:@FromDate и @ToDate. Клаузата ви WHERE за намиране на припокриващи се резервации изглежда така:
WHERE RESERVATION.start_date < @ToDate
AND RESERVATION.end_date > @FromDate
Наличните стаи няма да имат конфликти (т.е. КЪДЕ НЕ В...), а недостъпните стаи ще имат конфликт.