MySQL Удаление строк из базы данных - PullRequest
0 голосов
/ 10 февраля 2011

Я храню простую связь с тегами, и мне интересно, что будет лучшим способом удалить теги?

Два способа, которые я знаю:

  1. ВЫБРАТЬ тэг ОТ content_tags WHERE content_id = 10
  2. Используйте php для сравнения результата с новые теги поставляются и если есть любые теги из базы данных результат, которого нет в новых тегах, выполнить запрос на удаление этого тега
  3. Остальные теги либо новые или уже существует, поэтому я использую INSERT INTO content_tags ... ON DUPLICATE КЛЮЧЕВОЕ ОБНОВЛЕНИЕ

Или просто:

  1. DELETE FROM content_tags FROM тэги ГДЕ content_id = 10
  2. Вставьте каждый тег (не нужно использовать ON DUPLICATE KEY UPDATE здесь как теги для этого content_id являются уже удалено на данный момент)

В настоящее время я делаю первый метод, но второй способ, кажется, намного меньше хлопот. Но я не уверен, если это «плохо» или неэффективно использовать удаление таким способом. Или, если у вас есть лучший метод, не стесняйтесь поделиться.

1 Ответ

0 голосов
/ 10 февраля 2011

Вы можете настроить первый метод, чтобы он также не вставлял теги, которые уже существуют.Но это может (и, вероятно, будет) приводить к большему количеству запросов, чем второй метод, особенно если вы объедините эти операторы вставки в одном запросе.

...