购物车应用策略

时间:2012-12-30 21:58:42

标签: asp.net-mvc-3 sql-server-2008 shopping-cart

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

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

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

1 个答案:

答案 0 :(得分:2)

啊并发。 你有很多事情需要考虑:

  1. 如果您存储广告资源并从中减去并在单独的更新中再次写入,则会使您的广告资源计数处于问题状态
  2. 如果您的更新是单笔交易,以当前金额减少库存,则可能会使您的库存变为负数
  3. 您的更新必须:

    1. 开始交易
    2. 通过对其执行选择并阅读库存来锁定相关行。处理手头没有足够的情况。
    3. 如果有足够的库存更新该行 3a健全检查测试期间的库存
    4. 提交或回滚交易
    5. 有多种方法可以做到这一点,但上面应该可以正常工作。 您可以通过proc transaction中的新事务管理器对象或服务器端在代码中启动事务。