假设我们有一个主题表,我们希望能够合并主题,这样来自 x 个主题的关于同一事物的所有帖子都将出现在一个主题(最旧的主题)中。因此,当有人点击已合并的冗余主题时,他们将被带到最旧的主题,其中包括较新主题的所有帖子。
我的想法是创建一个合并表,其中包含以下属性:merge_id(这是一个主键,序列类型,自动递增)、topic_id 和日期。因此,如果合并了 5 个帖子,它们将在合并表中各有一条记录,所有记录都由 merge_id 关联。每个主题在其表中也会有一个 merge_id,如果它没有与另一个帖子合并,则设置为 null。
但是,假设我需要将另一个与这五个合并,我必须删除这五个并为每个创建一个新记录,包括第六个,以便它们都具有相同的 merge_id,然后更新 merge_id所有合并的主题;所有这些都在一个交易中。
这对我来说有点麻烦,我想知道是否有人知道实现合并论坛主题/线程的更好方法。
不是将 merge_id 存储在主题表中,而是存储基本主题的 ID,该主题的帖子现在显示在该 ID 下。null 将显示当前主题尚未合并,或者是其他主题已合并到的基本主题。要将新主题合并到现有集合中,只需设置该行的
base_topic_id
.