PHP中实时在线座位预订系统所需的逻辑流程?

时间:2013-06-09 07:48:32

标签: php logic business-logic

我正在开发PHP中的在线Web应用程序。该系统涉及旅游公司的座位预订系统。我有一个预订表格,其中包含一个包含旅行代码列表的选择框。每当用户选择巡回代码时,Ajax请求就获取该巡回代码的当前可用座位数。在此之后,用户选择他需要预订的座位数量并填写表格中的乘客数量的详细信息并提交表格。

由于该系统处于在线状态,可能会出现以下情况:

User1和user2已登录尝试预订tourA的席位。对于tourA,只有10个座位可供选择。 User1想要预订7个席位,而user2想要预订5个席位。 两者都打到了预订表单链接,两者都获得了可用的座位数为10.两者都开始填写表格,因为表格有点冗长。两者都需要一些不同的时间来填写表格并根据打字速度提交。用户都认为他们将获得所需的座位数量。但是两者都提交了时间差较小的表格,她认为用户B首先提交的表格将获得预订,而另一个用户A将收到错误消息,即相应的座位数量不可用。因此,在这里,用户感到困惑,因为他得到的消息是,在提交表格之后,现在数字座位是availebe,他得到的消息要求座位数量不可用。

我怎样才能避免上述情况?我需要实时预订系统背后的逻辑流程。任何人请解释我这个以及如何在php中实现这一点。

一旦用户选择座位数,我就会想到;使用ajax我将更新数据库表中的字段,该字段维护此可用的席位数并记录该会话的席位数。但是,如果用户选择座位并开始填写表格,可能会出现这样的说法,但由于任何原因,如果他没有提交预订表格,那么问题就会出现,因为我们已从db中删除了所需的座位数但预订程序不是由用户完成。那么如何恢复这个以及我们更新了表格,然后其他用户想要预订座位他们我喜欢座位数量不可用,他们将会消失,不会再次检查。由于这个旅游公司的业务可能会下降。

请注意,每位用户都需要登录申请预订座位。

朋友你可能会发现这个问题是家庭作业,但在这里我没有任何坚定的逻辑解决方案。     请指导我,请解释我克服上述情况的系统逻辑流程。如果有人在PHP中有一个简单的代码示例供参考,那么它对我也有帮助。

期待积极回复

谢谢!

1 个答案:

答案 0 :(得分:1)

确实没有一种完美的方法可以做到这一点。你基本上有3个选项

  1. 一旦用户表明他们想要保留资源,就立即保留资源(这就是nycballet.com所做的)
  2. 当用户提交购买时保留资源(这就是travelocity所做的)。
  3. 让两个用户购买资源并为人们提供回滚其中一项交易的工具(又称超额预订)
  4. 您最终选择的是一个商业决策,这取决于渠道的形状以及用户对用户体验问题的敏感程度。