1

在mysql中,我有以下内容:

TABLE docs (
    ID
    title
    content
)

TABLE specialDocs (
    docID -> docs(ID)
    userID -> users(ID)
)

所以 specialDocs 是可以属于用户的文档子集。

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

在此先感谢您的帮助

4

1 回答 1

1

我不会那样做 - 您的specialdocs表格是多对多表格,因此多个用户可能与同一个文档相关。如果不先删除其他引用,则不应允许您想要的东西-级联删除不会这样做。如果您没有参照完整性(即:MyISAM 表),那么您将在specialdocs不再存在的文档中留下孤立记录。

Cascade on delete 是一个参照完整性功能,因此它不适用于 MyISAM 表 - 您必须为此使用触发器。鉴于需要检查引用依赖关系,我也会对 Innodb 表使用触发器来specialdocs首先删除相关记录......

于 2010-09-03T02:38:43.243 回答