PHP+MYSQL的商城系统防止出现抢单超售的一种方法
PHP+MYSQL写的商城系统,在进行一些秒杀促销活动的时候,经常会因为客户短时间内大量涌入购买而出现,超售,销量超出设置库存。
这里提供一种思路
1、后台在设置抢单开始时间,结束时候,抢单数量的时候,顺便读取一次MYSQL中记录客户每次进行秒杀活动拍下商品的数据表(假设good_sale),将这里面目前的最大ID(所以需要规划一个自增ID字段)也顺便写入抢单的设置数据库里面(good_settting),假设写入max_id字段
2、前台给客户进行抢单的程序,分以下几步
①客户在拍下的时候,先将该记录写入记录表(good_sale),然后设置status=0(假设0是未付款状态)
②执行下一步操作,读取刚拍下的这个订单号在good_sale里面的ID,将这个ID数减去后台设置数据库里面记录max_id,如果大于设置数据库里面写入的本次活动商品数,就给客户提示,商品已经抢光,您没抢到,否则就update good_sale将status设置成1,扣减客户相应金额,提示付款成功,抢到订单
当然这个其实相当于队列的应用,可以用redis或者memcached也可以实现
顶(0)
踩(0)
- 最新评论