2

我正在开发一个拍卖网站。我已经编写了自己的拍卖系统。拍卖会在特定的时间段内运行,用户会出价。结束时间出价最高的人赢得拍卖(就像 ebay 一样)。当用户出价时,数据库检查是否是最高出价,如果是,则出价,否则不出价。

一切都很好,但问题是,我把两台笔记本电脑放在一边,从不同的账户登录,并在准确的时间提交了出价,两个出价都被放置(两个出价都高于当前的最高价,而且都是平等的)。不能对同一个产品进行两次相同的投标,对吗?如果两个用户同时提交投标,就会发生这种情况。

谁能说出摆脱这个问题的逻辑?

4

2 回答 2

2

您需要实现一种方法来管理对数据库的并发写入。有几种方法可以实现这一目标。我建议你从这里开始:http ://en.wikipedia.org/wiki/Lock_%28database%29

于 2012-04-19T19:42:29.180 回答
2

我认为,如果您使用时间戳来确定提交投标的确切时间点,您将无法在完全相同的时间提交投标。时间戳以毫秒为单位,这将是一个小奇迹。

但如果发生这种情况,您可以在两个出价之间随机选择。

于 2012-04-19T19:43:16.123 回答