|
|
1
3
一旦用户选择了座位,您就应该记录座位和票证的持有情况,可能是在一个单独的表中,以及该操作发生的时间戳,以及用户的id/会话id。 当您获得可用座位时,您应该查看您的预订表和临时座位/票务表,以了解我们的可用座位。当用户预订机票时,您可以将永久预订添加到预订表中,然后从临时表中删除该条目。 您可能希望有一个计划的操作,删除所有存在#分钟的临时条目。 这样做的最快方法是在内存中缓存临时预订,如memcache或全局对象,但您仍然需要处理线程/同步和竞争条件。 |
|
|
2
0
当你设计DB时,应该有一个已经预订的标志 如果是肯定的,不可以再次预订。 只需根据数据库字段添加一个检查 预订的人应该可以取消预订。 也应该有一个日志。 无论如何,用户ID都应该链接到该票证,这样即使在预订之间发生任何事情,用户也可以稍后更新。 你可以使用 提交回滚 在数据库事务中 |
|
|
3
0
如果我在做,我会在数据库中实现它。 具有bookedtime字段和status字段。 当有人选择该注册预订时,将一条记录添加到表中;此记录阻止其他人选择该预订。(插入预订(一些、字段、预订时间、状态)值(“嘎嘎”、“哦”、NOW()、0) 每当有人表示他们正在预订该时段时(即:每次他们在同一会话中重新加载页面,通过结账过程),都要更新表格。 (UPDATE bookings SET bookedtime=NOW()WHERE somefield='someidentifier';) 每隔X分钟,用“DELETE FROM bookings WHERE status=0 AND bookedtime<CURRENT_TIME-INTERVAL 15 MINUTE”对数据库进行cron。 |
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
Efannnnnn · 将Id数据存储到任何页面 1 年前 |
|
|
yooooo · 用于在块中删除的存储过程-LOOP未执行 1 年前 |
|
John Beasley · 更新一定数量记录的连续日期 1 年前 |
|
|
ColinM · MySQL以前的结果查询返回不正确的值 1 年前 |
|
Sergey_Z · MySQL只需无条件连接2个表和交叉连接 1 年前 |