首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在电子商务网站中管理并发到一个篮子中的最佳实践

在电子商务网站中管理并发到一个篮子中的最佳实践
EN

Software Engineering用户
提问于 2012-02-08 11:51:45
回答 6查看 18.6K关注 0票数 28

当两个客户同时添加一个库存仅为1的产品时,管理这种情况的最佳做法是什么?

必须在篮子的代码中检查以避免这两个客户中的一个添加相同的产品?

或者,这种检查是否必须在付款阶段进行,例如,进行第二次查询,以确认有关产品仍在库存中(即尚未被并发客户购买)?

EN

回答 6

Software Engineering用户

回答已采纳

发布于 2012-02-08 12:04:39

这个问题没有完美的答案,一切都取决于细节。

作为第一条“防线”,我会尽量避免这样的情况,只要有可能,我就不会卖掉那么低的物品。如果这是可能的,可能取决于情况和类型的文章,你想出售。在我工作的公司里,在我们没有存货之前,文章大多是从网站上删除的。但是我们正在销售全部商品,剩下的几件是由我们的销售人员作为特价出售的。对于小商店来说,这可能不是一种选择,特别是在销售高价商品的时候。

当向篮子中添加一些东西时,做双重检查的解决方案不是很好。人们在篮子里放了很多东西,却从来没有下过订单。因此,这可能会在一段时间内阻止本文。

所以,在我看来,对于小型工作来说,最好的办法是在付款前做最后一次检查,当订单实际下单时。在最坏的情况下,你必须告诉你的客户,你现在哪里的库存不足(什么小商店不会经常发生)。

票数 17
EN

Software Engineering用户

发布于 2012-02-08 12:38:27

我认为最佳做法是选择以下哪一种方案更适合于特定的业务情况:

  1. 乐观离线锁 ...solves这个问题(会话冲突问题),方法是确认一个会话将要提交的更改与另一个会话的更改不冲突。在某种意义上,成功的预提交验证是获得一个锁,表示可以继续对记录数据进行更改。只要验证和更新发生在单个系统事务中,业务事务就会显示出一致性。
  2. 悲观离线锁 ...prevents通过完全避免它们来冲突。它迫使业务事务在开始使用数据之前获取数据块的锁,因此,在大多数情况下,一旦开始业务事务,您就可以非常肯定地完成它,而不受并发控制的影响.

“悲观脱机锁定假设会话冲突的几率很高,因此限制了系统的并发性,而乐观脱机锁定则假设冲突的几率很低。对会话冲突的预期不可能允许多个用户同时处理相同的数据。”

票数 10
EN

Software Engineering用户

发布于 2012-02-08 14:47:56

这是一个人的问题,也是一个数据库的问题,数据库锁定是容易的一点!

考虑到客户可能永远不会退房…

你有两个基本的选择:

  • 您为客户保留了一项固定时间,例如,在他们将其添加到篮子后(20分钟)--在他们计时之后,必须重新检查库存水平或重新启动。这常被用来为活动或航空公司的座位买票。
  • 或者你说“xxx在24小时内正常发送”,但当他们结帐时保留库存,在这种情况下,如果有些商品是库存的,则必须允许他们在结帐后取消订单。(绿色,黄色,红色库存水平也可以运行良好,或一些网站说“低库存”,当他们下降到1或2)
票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/133925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档