Как экспортировать данные в БД из обновляющегося XML-файла?

Имеется периодически обновляющийся xml файл, к примеру содержащий информацию об объектах недвижимости. Данные из этого файла загружаются в MySQL базу данных.

Если это делается единоразово — все понятно: парсим XML (использую PHP), затем INSERT в таблицу.

Но что делать если XML-файл обновился (некоторые элементы удалились, содержимое других изменилось) и соответственно нужно обновить данные в таблице?

В голову пришло только TRUNCATE таблицы и INSERT по новой. Может можно как-то отслеживать конкретные изменения в XML-файле и в соответствии с этим делать UPDATE?
  • Вопрос задан
  • 3890 просмотров
Решения вопроса 1
magnitudo
@magnitudo
Архитектор, программист, предприниматель...
Если нет проблем с производительностью TRUNCATE,INSERT, то не стоит и загоняться.

Если объем данных большой, а изменяются они мало, то оптимальным вариантом было бы добавление в xml поля «версия», «временная метка» и т.п., дабы было максимально просто отслеживать изменения. Также в отдельном файле стоило бы хранить список удалённых записей.

Если очень не хочется делать TRUNCATE напишите хранимую процедуру INSERT_OR_UPDATE, которая будет либо добавлять запись либо обновлять её. Firebird например умеет INSERT OR UPDATE из коробки.

Если не вести журнал удалённых записей, то задача всё равно сведётся к проверке «Если записи нет в xml, то удалить её из базы», для всех записей в базе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы