我为酒店预订系统创建的关系数据库架构有4个表:
客户表 -
CustomerID (PK)
title
firstname
surname
address
town
county
country
postcode
tel
email
username
password
房间表
RoomID (PK)
RoomType
Description
PricePerNight
预订
ReservationID (PK)
CustomerID (FK)
RoomID (FK)
ArrivalDate
DepartureDate
Room_Availability
RoomID(PK/FK)
Availability
在前端,我有两个ajax日历,允许用户选择到达和出发日期,旁边有一个检查可用性按钮。
我不确定如何搜索数据库以检查哪些房间可用,然后在下一页上以gridview或其他方式显示它们。
另外,我的数据库架构是否正确,有人可以协助我吗?
答案 0 :(得分:0)
正如gitsitgo所说,你的问题太宽泛而无法完全回答。但是,让我们稍微削减它。首先,我假设一个房间因两个原因而无法使用:一个是它正在被修复或者其他东西,两个是它已经被保留了。如果是这样,您的架构看起来没问题。
因此,要检查可用性,您需要获取用户提供的开始日期和结束日期,并找到所有可用的房间,并且不保留用户提供的两个日期之间的任何一天。
执行此操作的逻辑是选择不符合以下任何条件的所有房间ID:
要完成此操作,请查找并应用EXISTS或IN。 (你也想要查看BETWEEN。)忘记在网格中显示它,直到你弄明白要显示什么。