Php 如何为以下内容指定mysql级联规则
在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”中的一列,那么这样做很简单。但是,我
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
记录