如何防止预订系统中的座位被重复预订?
我正在用 PHP 和 MYSQL 制作一个航空旅行预订系统模型作为一个项目。我有一个小问题。
仅在付款后,门票和座位详细信息才会永久存储在此处。
座位号在付款前分配。
假设人 1 预订了飞机上的座位 x 并支付了费用。
当人1还在支付机票时,人2预订了同一个座位(座位尚未预订)并先完成付款。
现在两个人都预订了同一个座位..
有人可以告诉我如何实现一个临时预订存储,该存储可用于在预订时存储数据,并且可供其他用户访问,以解决此问题,并且在用户会话结束后应自动删除数据,以防止虚假预订。
请尽快回复。
一旦用户选择了座位,您就应该记录座位和门票正在被保留,可能在一个单独的表中,并记录此操作发生的时间戳,以及用户的 ID/会话 ID。
当您找到可用座位时,您应该检查您的预订表和临时座位/票务表,以了解有哪些座位可用。当用户预订机票时,您可以将永久预订添加到您的预订表中,然后从临时表中删除该条目。
您可能希望有一个计划的操作来删除所有超过 # 分钟的临时条目。
执行此类操作的最快方法是拥有临时预订的内存缓存,例如 memcache 或全局对象,但是您仍然需要处理线程/同步和竞争条件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)