0

我正在存储一个简单的标签关系,我想知道删除标签的更好方法是什么?

我知道的两种方式:

  1. 从 content_tags 中选择标签,其中 content_id = 10
  2. 使用 php 将结果与提供的新标签进行比较,如果数据库结果中有任何标签不在新标签中,则对该标签运行删除查询
  3. 其余的标签要么是新的,要么已经存在,所以我使用 INSERT INTO content_tags ... ON DUPLICATE KEY UPDATE

或者简单地说:

  1. DELETE FROM content_tags FROM tags WHERE content_id = 10
  2. 插入每个标签(无需在此处使用 ON DUPLICATE KEY UPDATE,因为此时此 content_id 的标签已被删除)

我目前正在做第一种方法,但第二种方法似乎不那么麻烦。但我不确定以这种方式使用 delete 是否“不好”或效率低下。或者,如果您有更好的方法,请随时分享。

4

1 回答 1

0

您可以调整第一种方法,不要在已经存在的标签上插入。但它可能(并且可能会)仍然会导致比第二种方法更多的查询,特别是如果您将这些插入语句组合在一个查询中。

//小例子:)

INSERT INTO content_tags
(content_id, tag_id)
VALUES
(1,1),
(1,2),
(1,3);
于 2011-02-10T07:58:15.187 回答