【发布时间】:2011-01-26 20:42:02
【问题描述】:
在我的网站上,人们可以将项目添加到他们的愿望清单中。当 X 人将其添加到他们的列表中时,所有这些人的信用卡都会被扣款。
我面临的问题是如何确保如果两个客户同时将其添加到他们的愿望清单中,那么支付处理代码不会运行两次。有什么想法吗?
可能发生的一个例子是:
- 我们正在等待 20 人将商品添加到他们的愿望清单中,而我们有 19 人。
- Bob 和 Sally 访问该网站并点击“添加到愿望清单”按钮
- 服务器收到 Bob 的请求,发现现在有 20 个请求得到满足,然后收取费用。
- 在服务器收到 Sally 的请求的同时,由于同时收到 Bob 的订单,在 db 中仍然看到 19 个请求,开始处理付款。因此,付款被收取两次。
关于如何避免这种情况的任何想法?
我正在使用 MySQL 数据库和 PHP 进行编程。
【问题讨论】:
-
你熟悉“交易”吗?
-
你为什么要因为我把东西放在愿望清单上而向我收费?如果你那样做,我会很生气的!
-
@Hlgem 客户知道他们会被收费,他们会被要求提供付款细节等。别担心 :)
标签: database scalability