У меня есть база данных, которая выглядит примерно так:
id | product_id | tag
------------------------
1 | 10000 | tag1
------------------------
2 | 10000 | tag2
------------------------
3 | 10000 | tag3
------------------------
4 | 10001 | tag2
------------------------
5 | 10002 | tag1
------------------------
6 | 10002 | tag2
Каждый день мы проверяем веб-сервис на наличие обновленного списка тегов, а затем обновляем базу данных. База данных содержит 50 000 товаров, поэтому мы проверяем только около 100 товаров одновременно.
В настоящее время, когда я проверяю каждый товар (например, product_id 10000), я просто удаляю все строки (DELETE FROM table WHERE product_id= 10000), а затем вставьте все теги, один за другим.
Мне интересно, есть ли для меня лучший способ сделать это (я думаю о чем-то похожем на "INSERT INTO ..."ON DUPLICATE KEY UPDATE ... "Я использую, когда это одна строка, которую я вставляю / обновляю. Сначала я хотел просто вставить их, но если я это сделаю, база данных не будет знать, был ли удален тег)
То, что я делаю сейчас, работает отлично, но такого рода вещи появляются постоянно, и кажется, что должен быть лучший способ сделать это, тот, который не имеет столько обращений кбазы данных.