gpt4 book ai didi

Coldfusion:锁定数据库表以检查电子商务采购的库存

转载 作者:行者123 更新时间:2023-12-05 02:24:58 25 4
gpt4 key购买 nike

我在 Coldfusion 的电子商务网站上工作。存货数量有限。当一个人结帐时,我需要在那一刻检查库存数据库表并确保产品仍然可用。我担心会发生以下情况:

第 1 个人提交了他们的购物车以购买仅剩 1 件的产品。该代码开始从他们的信用卡中扣款,存储他们的登录信息。

对于同一产品,第 2 个人在第 1 个人之后提交了他们的购物车。第 1 个人的代码还没有达到将产品库存值减为 0 的程度。因此代码让第 2 个人购买了产品。

防止这种情况的最佳方法是什么?我在想我需要在代码周围放置一个 cftransaction 标签,该代码执行所有收费、添加登录信息,最后减少值(value)。一个简单的 cftransaction 标记是否锁定数据库直到它完成?我已经阅读了有关隔离级别的信息,但我仍然感到困惑。我是否需要对该 cftransaction 设置特殊的隔离级别?

最佳答案

您需要小心锁定的程度,因为您最终可能会遇到在等待锁定释放时超时的事务 - 并且让客户不满意!

您还需要注意另一种情况:用户 1 和用户 2 将相同的商品放入购物车。用户 1 完成结账,一路走到底。用户 2 开始打电话,然后在 10 分钟后回来完成。您的流程必须足够智能,以便在购买完成之前重新验证购物车商品。

我的建议是实现“软购买”流程,一旦有人开始结帐,这些商品就会被标记为“不可用于”其他任何人。如果购买完成,则转换为“硬购买”并且库存减少。如果用户没有完成购买,则释放“软购买”。

您可以在数据库表或软购买交易表中使用标志来指示软购买,具体取决于库存数据的存储方式。

关于Coldfusion:锁定数据库表以检查电子商务采购的库存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com