购物车应用策略

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了购物车应用策略相关的知识,希望对你有一定的参考价值。

我正在为我的客户开发购物车应用程序,并且我正在尝试找到一种策略,以确保在购买过程中不会发生碰撞。

例如,如果库存中剩余五个项目,并且两个客户碰巧同时进行购买;库存应该是剩下的三个项目,而不是四个。在购买之前我似乎必须知道,目前的库存是什么。此外,我需要一种方法来判断是否有人抓住了最后一项,即使他们尚未购买。

我应该使用哪些策略/模式来确保满足这些条件?我正在使用SQL Server开发.net mvc应用程序。

答案

啊并发。您有多种需要考虑的事项:

  1. 如果您存储库存并从中减去库存并在单独的更新中再次写入库存,则会使库存盘点处于问题状态
  2. 如果您的更新是单笔交易,可以按当前金额减少库存,那么您的库存就会变为负数

您的更新必须:

  1. 开始交易
  2. 通过对其执行选择并读取库存来锁定有问题的行。处理手头没有足够的情况。
  3. 如果足够的库存更新第3a行,则在测试期间检查库存
  4. 提交或回滚事务

有多种方法可以做到这一点,但上面应该可以正常工作。您可以通过begin transaction在proc中通过新的transactionscope对象或服务器端启动代码中的事务。

以上是关于购物车应用策略的主要内容,如果未能解决你的问题,请参考以下文章

带有 SPA 应用程序和 API 的会话

设计模式第16篇:策略设计模式

购物车与结算接口

如何从 Hybris 店面的购物车生成多个订单?

设计模式:策略模式

设计模式:策略模式