当两个客户同时添加一个库存仅为1的产品时,管理这种情况的最佳做法是什么?
必须在篮子的代码中检查以避免这两个客户中的一个添加相同的产品?
或者,这种检查是否必须在付款阶段进行,例如,进行第二次查询,以确认有关产品仍在库存中(即尚未被并发客户购买)?
发布于 2012-02-08 12:04:39
这个问题没有完美的答案,一切都取决于细节。
作为第一条“防线”,我会尽量避免这样的情况,只要有可能,我就不会卖掉那么低的物品。如果这是可能的,可能取决于情况和类型的文章,你想出售。在我工作的公司里,在我们没有存货之前,文章大多是从网站上删除的。但是我们正在销售全部商品,剩下的几件是由我们的销售人员作为特价出售的。对于小商店来说,这可能不是一种选择,特别是在销售高价商品的时候。
当向篮子中添加一些东西时,做双重检查的解决方案不是很好。人们在篮子里放了很多东西,却从来没有下过订单。因此,这可能会在一段时间内阻止本文。
所以,在我看来,对于小型工作来说,最好的办法是在付款前做最后一次检查,当订单实际下单时。在最坏的情况下,你必须告诉你的客户,你现在哪里的库存不足(什么小商店不会经常发生)。
发布于 2012-02-08 12:38:27
我认为最佳做法是选择以下哪一种方案更适合于特定的业务情况:
“悲观脱机锁定假设会话冲突的几率很高,因此限制了系统的并发性,而乐观脱机锁定则假设冲突的几率很低。对会话冲突的预期不可能允许多个用户同时处理相同的数据。”
发布于 2012-02-08 14:47:56
这是一个人的问题,也是一个数据库的问题,数据库锁定是容易的一点!
考虑到客户可能永远不会退房…
你有两个基本的选择:
https://softwareengineering.stackexchange.com/questions/133925
复制相似问题