关于外键和laravel的模式构建器,我有一个相当简单而愚蠢的问题(或者更确切地说是对外键应该如何工作的误解)。
我有以下3个表格:
蓝图
集合
BlueprintCollection
我想创建一个外键,将蓝图的id
链接到BlueprintCollection的blueprint_id
,并为Collection做同样的事情。
我的理解是我应该做以下
$table->foreign('blueprint_id')->references('id')->on('blueprint_table');
使用->onDelete('cascade
或->onUpdate('cascade');
我不必这样做,但我希望它是这样的。
这应该在BlueprintCollection表中完成。
但是,如果我正确理解这一点,如果包含在蓝图上引用blueprint_id
的{{1}}的行将被删除,它将删除Blueprint表中的条目。
显然,因为它是一个联结表我不想这样做,而是反过来。如果删除了Blueprint中的条目,我想删除BlueprintCollection表中的条目。
我是否正确理解了这一点?
答案 0 :(得分:0)
尝试下一步:
$table
->foreign('blueprint_id')
->references('id')
->on('blueprint_table')
->onDelete('cascade')
->onUpdate('cascade');