gpt4 book ai didi

php - 依赖MySQL Cascade删除安全吗

转载 作者:可可西里 更新时间:2023-11-01 08:16:04 27 4
gpt4 key购买 nike

我正在使用 PHP Laravel 框架,但这是一个一般性 PHP 问题。在删除级联上使用 MySQL 外键关系删除相关行是否安全?还是在 PHP 中执行此操作是最佳做法?我发现级联系统非常好,但不知道使用它是否安全?有什么最佳做法吗?

例如,当您有一个用户创建了帖子并且该用户被删除时,您是使用 PHP 删除他的帖子然后删除用户,还是只使用级联?

感谢您的反馈。

最佳答案

是的,您可以依赖级联删除。如果你用 ON DELETE CASCADE 定义关系,那么肯定会删除外行。绝对推荐使用 ON DELETE CASCADE(假设您要删除相关行),它可能比在您的应用程序中实现删除级联更可靠。

在您给出的示例中,包含用户帖子的行与使用带有 ON DELETE CASCADE 的外键的用户相关。在这种情况下,您只需删除该用户。 MySQL 将遵循所有关系并删除所有相关行。这将防止孤立数据。就孤立数据的可能性而言,通过应用程序执行此操作“风险更大”。

但是请记住,如果同一数据存在其他关系(例如,存在与要删除的用户帖子相关的回复帖子),则可以阻止删除,因为回复行中的引用会悬空。当然,这完全取决于您的数据库设计以及您如何设置外键。

关于php - 依赖MySQL Cascade删除安全吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27662996/

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