Mysql删除后代

时间:2011-06-13 10:31:34

标签: mysql cascading-deletes descendant

我有一张图像表,这些图像会有各种后代,例如缩略图,不同大小的版本和庄稼(以及那些庄稼的拇指)等。

这意味着每个原始图像可能会有相当多的后代。这些后代由parent_id字段引用,该字段提供直接父级。

最好,最有效的方法是什么,因为显然为每个图像/级别选择所有子项然后删除它们将会非常沉重,如果有批量图像删除?

2 个答案:

答案 0 :(得分:1)

使用InnoDB外键 - 并将parent_id链接到带有级联删除选项的id

或使用不同的树索引,以避免递归。 例如,嵌套集模型,如Managing Hierarchical Data in MySQL中所述。

答案 1 :(得分:1)

你需要关注的是......级联删除。

来自mysql网站的这篇文章可以帮到你。

http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html