gpt4 book ai didi

php - 确保我在 Laravel 5 中获得了正确的外键语法

转载 作者:行者123 更新时间:2023-11-28 23:49:40 24 4
gpt4 key购买 nike

所以我在理解如何制作外键方面没有问题,但我脑子里有些东西可能倒退了。

据我所知 documentation定义外键时,

$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');

这里的 onDelete 引用了这个,它可以是你在两者之间创建的外键。一个想法的例子是你有用户表和一个帖子表。因此,您的帖子表将包含(为简单起见)。

当我在这里阅读外键语法时,当我删除一个帖子时,它会级联删除与其相关的所有内容。但这是倒退?我是否想在用户表上定义一个级联删除规则,这样如果您删除一个用户,那么您将删除与该用户相关的所有内容。

话又说回来,如果有一条规则说如果你删除许多帖子中的一个,然后删除用户,那将是愚蠢的。有人可以为我澄清一下吗?如果实际上有一种方法可以在父关系(1:N 中的 1)上定义此规则,我将如何去做?

最佳答案

您的想法是有道理的,特别是因为您只考虑了两个表。 on delete 语句描述了当引用的用户行被删除时 post 表中的列会发生什么情况。

但是,许多表可能具有对 user_id 的外键引用。而且,每个人都可以用不同的方式对待。放之四海而皆准不是正确的方法。因此,将此信息存储在外键端而不是主键中确实有意义。

关于php - 确保我在 Laravel 5 中获得了正确的外键语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32808143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com