0

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

由于本系统在线,可能会出现以下情况:

用户 1 和用户 2 已登录并尝试为 tourA 预订座位。tourA 仅提供 10 个座位。用户 1 想预订 7 个座位,用户 2 想预订 5 个座位​​。两者都点击了预订表格链接,并且都将可用座位号设为 10。两者都已开始填写表格,因为表格有点长。两者都需要一些不同的时间来填写表格并根据打字速度提交。两个用户都认为他们将获得所需数量的预订座位。但是两者都提交了时差较小的表单,她认为用户 B 首先提交的表单将获得预订,而另一个用户 A 将收到一条错误消息,指出相应的座位数不可用。

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

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

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

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

期待正面回复

谢谢你!

4

1 回答 1

1

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

  1. 一旦用户表明他们想要保留资源(这就是 nycballet.com 所做的),就立即保留资源
  2. 当用户承诺购买时保留资源(这就是 travelocity 所做的)。
  3. 让两个用户都购买资源,并为人类回滚其中一项交易提供便利(又名超额预订)

您最终选择的是一项业务决策,并且取决于您的漏斗形状以及您的用户对 UX 问题的敏感程度。

于 2013-06-09T08:18:41.360 回答