我想知道使用 ON DELETE CASCADE 是否是个好主意,例如下面。因此,我对何时使用 ON DELETE CASCADE 删除行有了一个大致的了解。
模块表:
ModuleId (PK) ModuleNo ModuleName
11 CHI2333 ICT
Course_模块表:
CourseId ModuleId (FK)
3 11
会话表(考试):
SessionId SessionName ModuleId (FK)
5 ASDEE 11
在上面的示例中,如果我从Module
表中删除一行,那么它将删除其他 2 个包含相同 ModuleId 的表中的行。在Course_Module
表格中,它确定哪个课程包含哪些模块,在Session
包含考试详细信息的表格中,它将删除包含已删除 ModuleId 的任何行(考试)。
对于上面的示例是否可以这样做,我的一般问题是在删除或删除父表中的行时使用 ON DELETE CASCADE 删除外键行是明智和正常的做法吗?