Получаю по API с другого ресурса 130 товаров и засовываю их в таблицу в БД. Дальше примерно 1 раз в неделю мне надо делать по новой запрос к API, получать товары и если есть какие-то изменения, то надо и в базе обновить. Вопрос в том как?
Самый простой вариант конечно, это удалить все из таблицы и заполнить ее по новой актуальными данными. Или делать так:
if(кол-во товаров в БД != кол-во полученное от сервера), но это так себе, т.к. к примеру 2 товара может удалиться и 2 добавиться и получается те же 130, но содержимое чуть другое.
Либо еще такой вариант - получить массив данных из БД и сравнить его на эжквивалентность с массивом полученным от API, правда я не знаю есть ли функции, которые это делают (массивы многомерные).
Феншуйно это бы выглядело так:
- временная таблица, куда "всасываются" свежие данные,
- (опционально) некий инструмент визуального контроля корректности данных и сравнения с текущими
- обновление отличающихся (с отметками что именно менять)