索引的疑问以及字段注释的建议

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('installments', function (Blueprint $table) {
            $table->bigIncrements('id')->comment('编号');
            $table->string('no')->unique()->comment('分期流水号');
            $table->unsignedBigInteger('user_id')->comment('用户编号');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->unsignedBigInteger('order_id')->comment('对应的商品订单编号');
            $table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade');
            $table->decimal('total_amount')->comment('总本金');
            $table->unsignedInteger('count')->comment('还款期数');
            $table->float('fee_rate')->comment('手续费率');
            $table->float('fine_rate')->comment('逾期费率');
            $table->string('status')->default(\App\Models\Installment::STATUS_PENDING)->comment('还款状态');
            $table->timestamps();
        });
    }

1、如上的建表语句,在自己开发中,总觉会给 user_id, order_id 等这样的字段添加 ->index() 索引,至于这个索引对查询的性能到底是提升、提升多少、还是降低了性能不知道如何跟踪,有点靠感觉。但是看老师的教程基本没看到这种普通索引的创建,老师可以讲讲对这个索引创建需要注意的地方吗?
2、另外建议在迁移文件中添加注释字段,便于后期对数据表的顺利解读,表示看别人没注释的表经常是一脸懵逼,一点个人习惯。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

我们这里的 user_id 全部加了外键约束,就是索引了。

至于索引效果如何要等到项目正式上线之后根据具体情况去调整。

4年前 评论
讨论数量: 1
leo

我们这里的 user_id 全部加了外键约束,就是索引了。

至于索引效果如何要等到项目正式上线之后根据具体情况去调整。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!