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