PHP测试模拟并发下单,抢购

  • 抢购、秒杀是平常很常见的场景
    并发下如何解决库存的减少超卖问题
正常是查询出对应商品的库存,看是否大于0,
然后执行生成订单等操作,但是在判断库存是否大于0处,
如果在高并发下就会有问题,导致库存量出现负数
  • 简单模拟一下测试一下

  • 准备建表:库存 - 商品 -订单三张表,

  • 商品表bt_goods

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateBtGoodsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('bt_goods', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('goods_id')->comment('商品id');
            $table->index('goods_id');
            $table->integer('cat_id')->nullable();
            $table->string('goods_name',16)->comment('商品名称');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('bt_goods');
    }
}

订单表bt_orders

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateBtOrdersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public fun
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值