Simpan daftar reservasi kamar yang memiliki tanggal mulai dan tanggal berakhir. Jangan mencoba membuat model slot ketersediaan atau menganggap database reservasi Anda seperti spreadsheet. Ini hanya akan membawa Anda ke kompleksitas yang tidak berguna. Rentang tanggal mudah digunakan.
Yang paling penting untuk diketahui adalah bagaimana mendeteksi rentang tanggal yang tumpang tindih dalam kueri Anda. Ini adalah dasar untuk menguji apakah kamar sudah dipesan atau gratis. Katakanlah Anda memiliki tabel RESERVATION dan Anda ingin menemukan reservasi yang tumpang tindih dengan rentang tanggal tertentu:@FromDate dan @ToDate. Klausa WHERE Anda untuk menemukan reservasi yang tumpang tindih terlihat seperti ini:
WHERE RESERVATION.start_date < @ToDate
AND RESERVATION.end_date > @FromDate
Kamar yang tersedia tidak akan memiliki konflik (yaitu WHERE NOT IN...) dan kamar yang tidak tersedia akan memiliki konflik.