Giữ danh sách đặt phòng có ngày bắt đầu và ngày kết thúc. Đừng cố gắng lập mô hình các vị trí còn trống hoặc nghĩ về cơ sở dữ liệu đặt chỗ của bạn giống như một bảng tính. Điều này sẽ chỉ dẫn bạn đến sự phức tạp vô nghĩa. Phạm vi ngày rất dễ làm việc.
Điều quan trọng nhất cần biết là cách phát hiện các phạm vi ngày trùng lặp trong các truy vấn của bạn. Đây là cơ sở để kiểm tra xem phòng đã được đặt trước chưa hay phòng còn trống. Giả sử bạn có bảng ĐẶT CHỖ và bạn muốn tìm các đặt chỗ trùng lặp với một phạm vi ngày nhất định:@FromDate và @ToDate. Điều khoản WHERE của bạn để tìm các đặt chỗ chồng chéo trông giống như sau:
WHERE RESERVATION.start_date < @ToDate
AND RESERVATION.end_date > @FromDate
Các phòng trống sẽ không có xung đột (tức là KHÔNG CÓ Ở ĐÂU ...) và các phòng trống sẽ có xung đột.