我想知道例如下面使用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/

10-10 19:45