Php 如何为以下内容指定mysql级联规则

Php 如何为以下内容指定mysql级联规则,php,sql,mysql,cascade,Php,Sql,Mysql,Cascade,在mysql中,我得到了以下信息: TABLE docs ( ID title content ) TABLE specialDocs ( docID -> docs(ID) userID -> users(ID) ) 所以specialDocs是可以属于用户的文档的子集 我想知道:是否可以指定一个级联规则,以便在删除用户时,自动删除属于该用户的文档?(我意识到,如果指向用户(ID)的指针是表“docs”中的一列,那么这样做很简单。但是,我

在mysql中,我得到了以下信息:

TABLE docs (
    ID
    title
    content
)

TABLE specialDocs (
    docID -> docs(ID)
    userID -> users(ID)
)
所以specialDocs是可以属于用户的文档的子集

我想知道:是否可以指定一个级联规则,以便在删除用户时,自动删除属于该用户的文档?(我意识到,如果指向用户(ID)的指针是表“docs”中的一列,那么这样做很简单。但是,我不清楚是否可以使用上述连接表…)


提前感谢您的帮助

我不会这么做-您的
specialdocs
表是一个多对多表,因此多个用户可能与同一文档相关。如果不先删除其他引用,就不应该允许您想要的内容,而级联删除是不行的。如果您没有引用完整性(即:MyISAM表),那么您将在
specialdocs
中对不再存在的文档创建孤立记录


“删除时级联”是一个引用完整性功能,因此它不适用于MyISAM表——您必须为此使用触发器。考虑到需要检查引用依赖关系,我也会使用Innodb表的触发器来首先清除相关的
specialdocs
记录…

我不会这么做-您的
specialdocs
表是一个多对多表,因此多个用户可能与同一文档相关。如果不先删除其他引用,就不应该允许您想要的内容,而级联删除是不行的。如果您没有引用完整性(即:MyISAM表),那么您将在
specialdocs
中对不再存在的文档创建孤立记录

“删除时级联”是一个引用完整性功能,因此它不适用于MyISAM表——您必须为此使用触发器。考虑到需要检查引用依赖关系,我也会使用Innodb表的触发器,首先去掉相关的
specialdocs
记录