逻辑流程需要一个实时在线座位预订系统在PHP


Logical flow required for a real time online seats booking system in PHP?

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

当系统在线时,可能出现如下情况:

User1和user2已经登录试图预订tourA的座位。旅游a只提供10个座位。用户1想预订7个座位,用户2想预订5个座位。两者都点击了预订表单链接,并且都获得了10个可用座位号码。双方都开始填写表格,因为表格有点长。根据打字速度,填写表格和提交都需要一些不同的时间。两个用户都认为他们将获得所需数量的座位预订。但是两者都以很小的时间差提交了表单,她认为userB首先提交的表单将获得预订,而另一个用户a将获得相应数量的座位不可用的错误消息。因此,在这里用户会感到困惑,因为在提交表单后,当他收到可用座位数量的消息时,他收到的消息是需要的座位数量是不可用的。

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

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

请注意,每个用户都需要登录应用程序预订座位。

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

期待肯定的答复

谢谢!

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

  1. 一旦用户表示他们想要保留资源(这是nycballet.com所做的),就保留资源
  2. 当用户提交购买时保留资源(这是travelocity所做的)。
  3. 让两个用户都购买资源,并为人工回滚其中一个事务(也称为超额预订)提供设施

你最终选择哪一个是一个商业决策,它取决于你的漏斗的形状和你的用户对UX问题的敏感程度。