我有一张图像表,这些图像将有各种后代,例如缩略图、不同大小的版本和作物(以及这些作物的拇指)等。
这意味着每个原始图像都可能有相当多的后代。这些后代由提供直接父母的 parent_id 字段引用。
什么将是最好的,最有效的方法,因为显然为每个图像/级别选择所有子级然后删除它们如果有批量图像删除将是相当大的?
我有一张图像表,这些图像将有各种后代,例如缩略图、不同大小的版本和作物(以及这些作物的拇指)等。
这意味着每个原始图像都可能有相当多的后代。这些后代由提供直接父母的 parent_id 字段引用。
什么将是最好的,最有效的方法,因为显然为每个图像/级别选择所有子级然后删除它们如果有批量图像删除将是相当大的?
使用 InnoDB 外键 - 并使用级联删除选项将 parent_id 链接到 id
或者使用不同的树索引,以避免递归。例如嵌套集模型,如在 MySQL 中管理分层数据中所述。
您需要查看的内容是级联删除。
mysql网站上的这篇文章应该可以帮助你。
http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html