我想知道在下面的示例中使用 ON DELETE CASCADE 是否是个好主意。这就是我对何时使用 ON DELETE CASCADE 删除行有一个大概的了解。
模块表:
ModuleId (PK) ModuleNo ModuleName
11 CHI2333 ICT
Course_Module 表:
CourseId ModuleId (FK)
3 11
session 表(考试):
SessionId SessionName ModuleId (FK)
5 ASDEE 11
在上面的示例中,如果我从 Module
表中删除一行,那么它将删除其他 2 个包含相同 ModuleId 的表中的行。在 Course_Module
表中,它确定哪个类(class)包含哪些模块,在包含考试详细信息的 Session
表中,它将删除包含已删除 ModuleId 的所有行(考试)。
对于上面的例子这样做是否可以,我的一般问题是,当父表中的行被删除或删除时,使用 ON DELETE CASCADE 删除外键行是否明智且正常?
最佳答案
我个人认为最好在代码中包含该逻辑,而不是依赖数据库为您完成工作。这就是我为所有应用编写代码的方式。
只是我的 2 美分。
关于mysql - 何时使用 ON DELETE CASCADE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384919/