0

假设我们需要开发一个投标应用程序,例如 eBay 中的一个。我们不希望一个用户的出价阻止另一个用户的出价,这将导致响应缓慢。另外,当我根据我看到的最高价格出价时,我不想让应用程序说对不起,最高价格不再一样了;当我出价时,有人推高了价格。

我们应该使用哪种隔离级别?我正在考虑Read Uncommitted 脏读并且没有锁定但不确定。

我想听到更多关于 SQL Server 中隔离级别的真实示例/用例(或者一般来说,任何其他数据库软件,如果它们之间在隔离级别方面有相似之处)。对我来说,我发现仅查看定义并不是很有效。

谢谢你。

4

1 回答 1

1

READ UNCOMMITTED听起来很对,在你设想的场景中……但那个场景听起来很糟糕!

当我根据我看到的最高价格出价时,我不想让应用程序说对不起,最高价格不再一样了;当我出价时,有人推高了价格。

也许我理解错了,但你的意思是在你准备出价时是否有其他人出价?如果是这样,它还有什么用处?即使您出价较低,仅仅因为开始出价的时间较早,您会赢吗?那是行不通的。这必须在您的投标提交时决定。

确实,这应该与 一起运行READ COMMITTED,以便用户的出价受到所有以前的出价的影响 - 在它提交的那一刻。这是合理拍卖的要求。投标应按时间顺序运行,由TRANSACTIONs 包裹,并且始终以交易开始时的最新最大值为准,即当用户点击提交按钮时,他们应以之前提交的所有投标的总和为准。

于 2015-07-13T19:13:27.720 回答