通过多个表级联外键

时间:2013-12-03 14:53:32

标签: mysql sql

在我的申请表中,我有以下表格:

projects
files
revisions
comments
project_files
file_revisions
revision_comments

最后3个表总是包含两个带有两个表的外键的字段(因此file_revisions有一个字段file_id作为文件的外键和一个字段revision_id外键来修改)

现在,如果我从文件中删除文件,则project_files和file_revisions中的链接被成功删除,因为密钥在删除时具有CASCADE,但该文件的修订版中的条目仍保留在修订表中,因此还有注释。

有没有办法实现自动化?或者我是否必须首先选择文件的所有修订,然后删除所有这些修订的所有注释?

提前致谢

1 个答案:

答案 0 :(得分:1)

如果每个版本始终对应于一个文件,并且应该在删除文件时删除,那么请使用关系表file_revisions似乎不是您数据的好模型。

您的FK表格中应该revisions直接指向files

同样,comments可以将FK指向revisions