【发布时间】:2016-03-06 18:00:53
【问题描述】:
我有这样的疑问: 当两个用户点击 book 按钮时,在同一毫秒,MySQL 数据库执行双重输入。如何避免向我的数据库添加双重数据?
参考资料: 后端:PHP 前端:HTML/CSS/JS
我尝试在执行入口语句之前随机中断。
例如:当用户按下:book now 时,我会等待下一个进程几秒钟。然后让它继续向 MySQL 中插入数据。
但这似乎是不好的做法。
我可以知道任何更好的方法来解决这个问题吗?
编辑:例如,我有一个剧院预订系统。情况是:两个或多个用户同时预订同一个时段并且被预订。而其中一个应该成功,而其余的应该会出错。
【问题讨论】:
-
如果您在数据库表中使用主键,MySQL 将不会创建双重条目。它只会执行两个查询中的一个,而另一个将失败,即使它们在准确的时间发送到数据库。
-
感谢您的回复。例如,我有一个剧院预订系统。发生的情况是,两个用户同时预订了同一个时段并且它被预订了。而其中一个应该会出错。
-
如果您的数据库设计正确,则不应发生这种情况。例如,如果您使用一个表来预订时间段,其中主键是日期和时间,那么您不能在该表中为同一个时间段创建两个条目。
标签: php mysql web e-commerce