【发布时间】:2020-12-13 20:54:39
【问题描述】:
在使用 MYSQL 为 laravel 软件设计数据库时,分配相关的外键还是 Laravel 负责“软件方面”。
在迁移中我们有类似的东西
表格示例:
$table->unsignedBigInteger('user_id');
我应该修改 phpmyadmin 中的示例表并使 user_id 成为外键吗?有没有更好的方法或者这不相关或没有必要?
【问题讨论】:
-
这不是必需的,但对数据完整性很有好处;数据库是执行此类约束的好地方
-
@lagbox 非常感谢,但它会影响数据库加载或性能吗?
-
如果定义名称为
user_id,那么Laravel模型可以检测为users表id。但是如果你定义了任何其他名称,那么你需要告诉 laravel 外键名称,同时在模型上建立关系 -
@KhalilGhanem 它确实会影响,因为在 MySQL 中声明外键将创建一个索引,让基础负载更有效。在小型数据库上,差异可以忽略不计,但在更大的数据库上,您真的可以在几秒钟内看到差异。