Php 在laravel迁移中是否需要定义外键约束?
我见过许多人在编写迁移时没有定义外键约束,包括jeffrey way在他的文章中。比如说,Php 在laravel迁移中是否需要定义外键约束?,php,mysql,laravel,Php,Mysql,Laravel,我见过许多人在编写迁移时没有定义外键约束,包括jeffrey way在他的文章中。比如说, Schema::create('post',function(Blueprint $table){ $table->id(); $table->integer('user_id')->index(); $table->text('body'); // }); 在这里,没有定义如下所示的外键约束 $table->foreign('user_id
Schema::create('post',function(Blueprint $table){
$table->id();
$table->integer('user_id')->index();
$table->text('body');
//
});
在这里,没有定义如下所示的外键约束
$table->foreign('user_id')->references('id')->on('users');
我总是定义外键,因为这样可以维护表之间的关系和完整性。但是我看过很多视频,他们没有定义外键。这背后有什么具体的原因吗?没有必要,但我们应该为where()上使用的所有内容编制索引。是的,您应该创建外键,这样您就可以创建索引并链接表。这不是必需的,但我们应该为where()上使用的所有内容编制索引。因此,是的,您应该创建外键,这样您就可以创建索引并链接表。不使用这些键的唯一原因是如果您不需要数据库中的一致性,或者您确信您的框架/代码不容易出现这些引用错误。但正如视频中所示,外键不必定义为在laravel应用程序中具有功能关系。不使用这些键的唯一原因是,如果您不需要数据库中的一致性,或者您确信您的框架/代码不容易出现这些引用错误。但如视频中所示,外键不必定义为在laravel应用程序中具有功能关系。外键约束使数据库保持一致。我不知道还有什么别的方法可以像层叠一样。你也应该读一下。考虑一个删除父元素的场景,子元素只是坐在某个相关表中。呵呵!现在,这可能会破坏你的应用程序
PS:这不是必需的,但应该这样做。外键约束使您的数据库保持一致。我不知道还有什么别的方法可以像层叠一样。你也应该读一下。考虑一个删除父元素的场景,子元素只是坐在某个相关表中。呵呵!现在,这可能会破坏你的应用程序
附言:这不是必须的,但应该做。是的,没错。尽管我们可以在不将列定义为外键的情况下对其进行索引/yes-true。尽管我们可以在不将列定义为外键的情况下对其进行索引/