删除包含已连接邮件的页面的最佳方法?

时间:2012-02-17 13:48:08

标签: mysql feed cascading-deletes

我有一个我用一大堆'feed items'创建的页面 - 比如facebook - 我目前面临的问题是找出'删除逻辑'的最佳方法。也就是说,如果用户删除了PAGE - 我想删除此页面中的“已连接消息”:

  1. Feed items
  2. 评论
  3. 我有许多MySQL表,其中包含feedItems,注释等等 - 但是如果用户删除页面,我不确定删除所有这些的最“最佳方法”吗?

    有人可以提供建议吗?我猜它类似于StackOverflow - 如果一个问题是删除,删除的最佳方法是什么

    1. 问题
    2. 答案
    3. 所有评论
    4. 等?

1 个答案:

答案 0 :(得分:0)

如果您正在使用InnoDB,最简单的方法是在外键上使用ON DELETE CASCADE。当删除外键引用的行时,此选项使MySQL删除表中的行。

例如,如果您有一个带有主键ID的表“question”和一个带有外键“question_id”的表“answers”,那么当该问题将被删除时,包含“answers”的所有行都包含相同的question_id也将被删除。

否则你需要编写多个delete语句,每个表一个。