我不确定何时在迁移中使用index()。
我举一个例子:
目前,我将其编写为:
Schema::create('bankdetails', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id');
...
});
我正在获取与
的关系public function bankdetail(){
return $this->hasOne(Bankdetail::class);
}
在这种情况下,您还会使用index()吗?
让我感到困惑的是杰夫的GitHub project,您会看到他很少使用index()。
除此之外,如果我要为其设置外键
$table->foreign('user_id')->references('id')->on('users');
我还需要使用Index()吗?
答案 0 :(得分:1)
index()
将索引添加到您的数据库。要知道何时在迁移中使用index()
,您需要了解何时在数据库中添加索引。
索引是表中选定数据列的副本,可以非常有效地对其进行搜索。数据库索引允许查询从数据库中有效地检索数据。索引与特定的表有关,并且由一个或多个列组成。
正确地实现索引可以提高查询性能,但同时也会增加额外的写操作和存储空间来维护索引数据结构。您必须确保谨慎使用索引。
选择索引时的注意事项
答案 1 :(得分:0)
如果您的问题是“我应该在index()
还是user_id
上使用id
,那么答案是否定的。
一个是导致increments()
方法被固有索引的主要原因。
另一个是外键,它也具有内在索引。
何时使用它:
当您在查询中的where
条件中使用了一个字段(最好是整数)时。
示例:如果您的status
字段包含值(0,1,2,3 ...),则应index()
。