如何在酒店预订系统中实施检查可用性

时间:2009-04-01 05:30:16

标签: php mysql

我正在为我朋友的小型度假村开发网站,请参阅www.shivgangaresorts.com/dev

这个度假村共有8个房间,所有房间都属于同一类型,因此每间客房的价格都相同。

我只需要代码或逻辑来检查给定否的可用性。在给定的登记入住和退房日期的房间。

当有人预订时,预订表中的详细信息为:

  • booking_id
  • 客户名称
  • 电子邮件
  • 入住日期
  • 退房日期
  • 没有。房间

请帮忙。这非常关键,因为我也将整合PayPal,所以不应该有混淆......

3 个答案:

答案 0 :(得分:2)

如果所有房间每周7天,每天24小时都可用,那么您的预订应该有一个start_time(时间戳)和end_time(时间戳),而不仅仅是日期。

标准预订可能具有特定的开始时间(~6pm)和结束时间(〜上午11点),但您可能希望具体为了提供提前到达或延迟结账。

这是我用户的逻辑:

  1. 用户选择入住日期和退房日期。

  2. 您的计划会在入住日期的下午6点和结帐日期的上午11点抓取,并根据当前预订选择未在这些时间内预订的房间。 (回程房间)

  3. 这听起来像一个相当简单的方法,但你可能需要考虑女仆时间,分开房间之间的预订,等待房间等。

答案 1 :(得分:1)

我想如果你在每次页面刷新时检查可用性,我会通过获取当前有效的预订量来计算有多少免费房间:

select sum(number_of_rooms) from reservations where
  check_in_date <= now() and
  check_out_date >= now()

这将为您提供当前占用的房间。然后简单地从硬编码的“房间总数”值中减去该值。

通过将客户和个人房间表与预订表的链接表进行规范化,可能有助于规范化数据库。但是我不知道你的约束力。

答案 2 :(得分:0)

您需要一个程序来确定可用的房间数量。对于少数房间来说,最简单的答案是在每个房间内循环并检查期间的可用性。也就是说,如果在此期间对某个房间进行预订,则无法预订。

如果您想考虑在房间之间拆分预订,则会变得更加困难,但您应该在此期间检查每个房间的可用性,然后汇总结果。