对于艺术项目,我正在尝试设置订单网站。 该概念允许用户预订最多。每个艺术家的两个时段。每位艺术家有12个插槽,但每个插槽都有特定的定义(因此每个插槽都是唯一的)。这些插槽仅在非常有限的时间内可用,并且有望快速预订。因此在短时间内会有很多请求。我必须确保每个文章/广告位一次只提供给一个用户,并且无法重复预订。
我的想法是,检查下一个未预订的插槽(status =“free”)并在该请求上将表中相应行的状态更新为status =“locked”。如果用户实际进行到预订插槽,状态更新为“已预订”。
如果用户点击“取消”,我可以通过将行更新为status =“free”来发布文章。
但是,用户不可能只是放弃网站,我也没有办法检查这个问题。该插槽将保持“锁定”状态。我在想,可能有办法自动重置状态,例如在“锁定”之后120秒并向用户显示倒计时。这甚至可以增强兴奋因素。
我认为cron作业不会起作用,因为我需要将锚点作为行的最后一次更新,而不是特定的日期时间。
我查看了MySQL事件,但了解到我无法操纵它附加到的表的数据。
我非常感谢任何想法。 谢谢, 萨姆
答案 0 :(得分:0)
在您的数据库中,您的状态表会添加;
字段。
当有人锁定datetime
时,您还可以使用slot
当有人查阅您执行的插槽并更新并释放非活动插槽时
NOW()