mysql - 一列上的两个外键

标签 mysql laravel foreign-key-relationship

我在 MySQL 中有两个表,名为 manualslibrary。两者都可以上传文件,所以我创建了第三个表,名为 files。在文件中,我有一列 parent_id。我可以从手册和库中将 parent_id 作为外键吗?

我正在使用 Laravel (4.2) 并尝试了这个,但它不起作用:

$table->integer('parent_id')->unsigned();
$table->foreign('parent_id')->references('id')->on('library');
$table->foreign('parent_id')->references('id')->on('manuals');

最佳答案

没有。同一列上不能有多个外键。来自 MySQL 文档:

MySQL supports foreign key references between one column and another within a table. (A column cannot have a foreign key reference to itself.) In these cases, “child table records” really refers to dependent records within the same table.

这是因为 MySQL 无法区分父节点。 Laravel(或任何其他框架)不提供解决此问题的方法。

这个问题之前的形式略有不同。示例:it is possible to reference one column as multiple foreign keys

关于mysql - 一列上的两个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31649074/

相关文章:

php - 如何在 Laravel 中组合带有各种可选参数的查询?

ios - 根据FK中的值查询表

PHP:从*奇怪* MySQL 数据库中获取数据

mysql - 使用SQL生成字符串

java - 使用 Java 将值插入 MySQL 中的单个列

php - Laravel 加入最新的 pressureMap 入口

laravel - 如何使用 Maatwebsites 将标题添加到 Excel 工作表

sql - 外键引用 SQL Server 中的 2 列主键

mysql - 在MySQL中将列拆分为具有不同字符串计数的两列

php - 发送到 mysql 的表单上的链接和样式损坏,是因为 mysql_real_escape_string 吗?