在线酒店预订系统,同时预订
Online Hotel Booking System, Simultaneous Booking?
我被要求创建一个在线支付的在线预订系统,我想知道在2个客户同时预订同一房间的情况下该怎么办。
例如:
同时:
Customer1和Customer2预订了一个标准间,只有一个房间。(房间可用性将显示仍有1个房间可用)。然后他们同时按了"确认"键
使用锁定构造(在本例中可能是在数据库级别)来确保一次只执行一次确认。如果可能出现这样的竞态条件,您应该总是这样做。这样你就会知道谁是第一个,你可以告诉其他用户,他们太慢了,无法确认。
你可能想要添加的另一件事是付款时间限制。在许多系统中,当您确认某件事时,您将有一定的时间来付款以获得预订。如果您未在此期限内付款,确认函将失效,房间将重新可用。
有几种方法可以解决这个问题。
- 如果用户选择一个房间,暂时从你的web前端删除它。然后,任何后续访客将无法选择该房间进行预订。如果第一个用户没有完成交易,那么房间将再次可用。
- 像上面提到的那样在数据库上加一个锁,这样在任何时候只能写一条记录
使用"临时"系统,将预订标记为临时,例如10分钟。然后,这些槽对后续请求不可用。如未能在指定时间内完成预订,该时段将会再次被取消。如果你在他们预定槽位之前抓住所有的客户细节,那么退出率应该保持在低水平。
您必须与预订者沟通时间框架和"临时状态"。如果你有后续的阶段,游客可以停止,那么一个简单的JS计时器倒计时的时间会有所帮助,并推动预订的过程。
或者,允许重复预订,直到最后"付款"按钮按下时,它变成先到先到。第二种方法转换得更好,第一种方法更"正确"。
相关文章:
- 数据绑定:'系统Char'不包含名为'xxxxx'
- Javascript模块系统I'I’我正在努力,但搞不明白
- 是否可以在系统/电脑浏览器中访问手机摄像头
- Node JS中的排名系统算法
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 如何在foreach循环中对每个产品单独应用评级系统
- Javascript-修复搜索系统
- 是否有任何设置阻止JavaScript在系统上工作
- 如何组织用户系统的Mongo集合
- 数字文件命名系统
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- 动态代码中存在系统应用程序地址错误
- 从自己的安全系统中重新找回自己
- 难以置信的简单密码系统不工作
- 在chrome.runtime消息系统中使用promise
- 当地址栏出现时,安卓系统上的css固定页脚被隐藏
- 预订系统障碍
- 尝试用javascript创建一个座位预订系统,并用本地存储保存数据
- 在线酒店预订系统,同时预订
- 简单的酒店预订表格总计算