在线酒店预订系统,同步预订?

时间:2011-11-25 01:36:05

标签: php javascript mysql

我被要求创建一个在线支付的在线预订系统,我想知道在2个客户同时预订同一房间的情况下该怎么办。

例如:
同时:

客户1和客户2预订标准客房,仅提供1​​间客房。 (房间可用性将显示仍有1个房间可用)。然后他们同时点击了“确认”按钮。

3 个答案:

答案 0 :(得分:4)

使用锁定构造(在这种情况下可能在数据库级别),以确保一次只能进行一次确认。如果可能出现这样的竞争条件,你应该总是这样做。这样你就会知道谁是谁,你可以告诉其他用户他们太慢而无法确认。

您可能想要添加的另一件事是付款时间限制。在许多系统中,当您确认某些内容时,您将有一定的时间来支付预订费用。如果您未在该时间内付款,确认将过期,房间将再次可用。

答案 1 :(得分:0)

有几种方法可以解决这个问题。

  1. 如果我的用户选择了一个房间,请暂时将其从网络前端删除。然后任何后来的访客将无法选择该房间进行预订。如果第一个用户未完成交易,则房间将再次可用。
  2. 如上所述锁定数据库,因此只能随时写入一条记录

答案 2 :(得分:0)

使用“临时”系统将预订标记为临时,例如10分钟。然后,这些插槽将无法用于后续请求。如果预订未在时间范围内完成,则该插槽将再次释放。如果您在预订插槽之前获取所有客户详细信息,那么辍学率应保持较低。

您必须将时间范围和“临时状态”告知预订者。如果您有后续阶段,访问者可以停止,那么一个简单的JS计时器倒计时将有所帮助,并推动预订者顺利进行。

或者,允许双重预订,直到首次出现时按下最后的“付费”按钮。第二种方法转换得更好,第一种方法更“正确”。