【问题标题】:MySQL Merging tag recordsMySQL 合并标签记录
【发布时间】:2016-02-18 20:34:28
【问题描述】:

我有一个有多个关系的标签系统。有时有类似的标签应该合并为一个。

让我们将 tagA 称为应该合并并因此消失的标签,而将 tagB 称为现在将承担 tagA 关系的标签。

为了澄清,我需要的是:以前与 tagA 相关的每个实体现在都与 tagB 相关,然后删除 tagA。

基本结构是这样的:

tag
---------------
tag_id

description



tag_news
---------------
tag_news_id

tag_id

news_id



tag_pages
---------------
tag_pages_id

tag_id

pages_id

等等……

我知道我可以:

1) 更新所有与 'tag' 表相关的表,将 tagA 的 id 更改为 tagB 的 id。

2) 从 'tag' 表中删除 tagA。

但是与标签系统的关系不断增加,我想要一个解决方案,我不需要通知查询中正在更新的每个表。

我曾想过使用 UPDATE 级联,但我无法在 'tag' 表中为 tagB 的 id 更新 tagA 的 id,因为我将以两条具有相同主键的记录结尾。

对如何实现这项工作有任何想法吗?

非常感谢。

【问题讨论】:

    标签: mysql sql database merge tags


    【解决方案1】:

    怎么样: 1.插入TagB作为新标签; 2.更新所有将TagA更改为TagB的表; 3.从Tags表中删除TagA

    【讨论】:

    • 这会工作,有两个但是。首先,tagB 已经存在,其次,它使每次出现新关系时都必须更新代码的问题。但我开始认为我不会有一个神奇的解决方案。谢谢!
    猜你喜欢
    • 2015-07-21
    • 2012-09-15
    • 1970-01-01
    • 2023-03-05
    • 2014-05-11
    • 2021-09-17
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    相关资源
    最近更新 更多