因为iwebshop原生的库存流程不太理想,参见:
iwebshop库存量的设计缺点.txt(http://blog.youkuaiyun.com/gevolution90/article/details/8709706)
试用了一下ecshop的购买到下订单的流程,发现下了订单,并且在后台点了支付及配送后,库存量都没有变。不知是什么原因了,也懒得去看源代码了。
用“php|mysql 电子商务|商城 库存量 问题”关键词在百度,Google.hk,德问上进行搜索,没有找到太有价值的资料,于是自己设计了一下库存量流程的处理接口。
btw,这个页面有参考价值:
+商城并发抢购库存减至负数问题(http://www.dewen.org/q/10230/%E5%95%86%E5%9F%8E%E5%B9%B6%E5%8F%91%E6%8A%A2%E8%B4%AD%E5%BA%93%E5%AD%98%E5%87%8F%E8%87%B3%E8%B4%9F%E6%95%B0%E9%97%AE%E9%A2%98)
要解决的问题首先是避免iwebshop原生库存流程中库存量轻易就被做空,然后是避免超售现象(即库存变为负数)。除此之外,不再考虑其它复杂的情况,不考虑如高并发,大流量,分布式这类高级东西。意在为最基本的环境:单台服务器(比如虚拟主机),mysql甚至没有innodb引擎的情况下,提供具有一定事务性的库存量功能。
因此,最基本的设计原则是,事务完整性问题能交给数据库解决的全交给数据库(哪怕是MyISAM引擎),因为数据库有实现好的锁(管它是表锁还是行锁)。若MySQL支持InnoDB引擎,则直接使用InnoDB的事务功能(所以具体会有两个实现版本,一个MyISAM版本和一个InnoDB版本)。
所有接口使用一个类进行包装,每个接口就是类中的一个方法。
先分析库存量被清0的问题,在用户实际支付之前(不考虑货到付款的情况)就扣掉库存量都会有被恶意用户低成本清0库存的风险。所
iwebshop库存量的设计缺点.txt(http://blog.youkuaiyun.com/gevolution90/article/details/8709706)
试用了一下ecshop的购买到下订单的流程,发现下了订单,并且在后台点了支付及配送后,库存量都没有变。不知是什么原因了,也懒得去看源代码了。
用“php|mysql 电子商务|商城 库存量 问题”关键词在百度,Google.hk,德问上进行搜索,没有找到太有价值的资料,于是自己设计了一下库存量流程的处理接口。
btw,这个页面有参考价值:
+商城并发抢购库存减至负数问题(http://www.dewen.org/q/10230/%E5%95%86%E5%9F%8E%E5%B9%B6%E5%8F%91%E6%8A%A2%E8%B4%AD%E5%BA%93%E5%AD%98%E5%87%8F%E8%87%B3%E8%B4%9F%E6%95%B0%E9%97%AE%E9%A2%98)
要解决的问题首先是避免iwebshop原生库存流程中库存量轻易就被做空,然后是避免超售现象(即库存变为负数)。除此之外,不再考虑其它复杂的情况,不考虑如高并发,大流量,分布式这类高级东西。意在为最基本的环境:单台服务器(比如虚拟主机),mysql甚至没有innodb引擎的情况下,提供具有一定事务性的库存量功能。
因此,最基本的设计原则是,事务完整性问题能交给数据库解决的全交给数据库(哪怕是MyISAM引擎),因为数据库有实现好的锁(管它是表锁还是行锁)。若MySQL支持InnoDB引擎,则直接使用InnoDB的事务功能(所以具体会有两个实现版本,一个MyISAM版本和一个InnoDB版本)。
所有接口使用一个类进行包装,每个接口就是类中的一个方法。
先分析库存量被清0的问题,在用户实际支付之前(不考虑货到付款的情况)就扣掉库存量都会有被恶意用户低成本清0库存的风险。所

本文介绍了基于PHP和MySQL设计的库存流程处理接口,旨在解决库存轻易被清空和超售问题。通过异步ID表和异步库存量记录表模拟事务处理,确保基本的库存管理功能,并提供增加、减少库存,冻结、解锁库存等操作。同时,讨论了在不同数据库引擎下(MyISAM和InnoDB)的实现策略。
最低0.47元/天 解锁文章
815

被折叠的 条评论
为什么被折叠?



