Mysql 如何根据入住天数或月数管理客房可用性
我正在开发一个Rails 3应用程序(使用MySQL作为RDMS)来管理一些房间的可用性/入住率(这是一个类似酒店的应用程序) 就我而言,问题是我必须满足system 2的不同要求,因为一个房间可以出租:Mysql 如何根据入住天数或月数管理客房可用性,mysql,database-design,activerecord,ruby-on-rails-3.1,Mysql,Database Design,Activerecord,Ruby On Rails 3.1,我正在开发一个Rails 3应用程序(使用MySQL作为RDMS)来管理一些房间的可用性/入住率(这是一个类似酒店的应用程序) 就我而言,问题是我必须满足system 2的不同要求,因为一个房间可以出租: 几个月(例如6个月) 某些天/周/周末 显然,应用程序必须在给定的日期内显示每个房间,是否可用,以及哪个用户正在租用;另一方面,一个用户可以在一个房间中搜索给定的日期范围。 日期范围可以是某个固定日期或某个月范围(例如从9月到3月),我知道这与数据库设计无关,但我必须记住 为了让这个系统高效地
你们中的一些人能帮我吗?或者给我一些提示?保留一份有开始日期和结束日期的房间预订清单。不要试图为可用时间段建模,也不要把您的预订数据库想象成一个电子表格。这只会让你陷入毫无意义的复杂性。日期范围很容易使用 最重要的是要知道如何在查询中检测重叠的日期范围。这是测试房间是否已预订或是否免费的基础。假设您有一个预订表,并且希望查找与给定日期范围重叠的预订:@FromDate和@ToDate。查找重叠预订的WHERE子句如下所示:
WHERE RESERVATION.start_date < @ToDate
AND RESERVATION.end_date > @FromDate
WHERE RESERVATION.start\u date<@ToDate
和预订。结束日期>@FromDate
可用房间不会有冲突(即不在…)且不可用房间会有冲突 一开始我也这么想,但由于几个月的租房问题,我不确定。我忽略了一点(为了简化问题),那就是该应用程序在一年中向学生出租房间,在夏天向游客出租房间;因此,学生可计算的时间单位是一个月,因此学生不能在15天内租用房间。但是读了你的答案,我意识到最后的问题是数据层的开始日期和结束日期。我只需要提出一些逻辑,禁止学生租用少于一个月的房间。感谢乔尔为我指明了正确的方向;)@杜克博士-不客气!如果答案有帮助,请随意投票!当然是有帮助的!我试图提高投票率,但我需要更多的声誉:/