将实际库存数量与购物车中显示或出售的数量进行协调的最佳(或者可能是最常用的)方法是什么?
在此先感谢,马特
嗯,你有几个问题。
在基本层面上,它“容易”。只需使用经典的事务处理技术来维护库存编号和针对库存的订单输入行。如果您有 10 个可用,并且有人订购了 1 个,则在增加库存项目的“已提交”数量的同时,提交数量为 1 的行项目。发货时,请从 In Stock 中删除一件,从 Committed 中删除一件。有货 - 承诺 = 可用。
所以:
In Stock Committed Available
Before: 10 0 10
Ordered: 10 1 9
Shipped: 9 0 9
不利的一面是涉及一堆锁定,这可能会影响并发性。根据您的流量,这可能是也可能不是问题。然后,您将根据库存对订购的物品进行即时计数,最终会遇到竞争条件。但这实际上只是商业生活中的一个事实。
但是,无论哪种方式,无论您如何将条目提交到数据库中,这并不意味着该项目将实际发货。
库存编号可能完全是错误的。可能是输入错误,库存可能损坏,“员工缩水”等等。各种各样的事情都可能出错。因此,您对客户做出的任何承诺,即您将实际运送您所承诺的东西,都必须在其旁边加上那个小 * 作为免责声明。
然后你会处理整个延期订购、取消和履行问题。