Как правильно написать модуль логирования данных highload-блоков?
Модуль должен "запомнить" изменения, которые произошли с элементами highload-блоков при работе сайта, он должен фиксировать количество добавленных/измененных/удаленных элементов. Так чтобы эти изменения можно было перенести в выгружаемом файле на другой сайт.
Например админ может в интерфейсе выгружает изменения по справочнику в файл ( CSV или JSON) на сайте где установлен модуль и затем на другой сайте где также есть данный модуль делать экспорт изменений.
Как лучше организовать запоминание изменений, при событиях OnBeforeUpdate/OnBeforeAdd делать дамп данных из данного highload-блока в файл и и далее при импорте брать самый последний файл в котором самая последняя версия highload-блока? Но как быть с удаленными элементами их тоже надо логировать, делать это по ID ?
Второй вопрос, как при экспорте на другой сайт лучше делать проверку?
Думаю просто сопоставлять ID и Код highload-блока если такой highload-блок не будет найден на сайте, то создавать его со всеми данными.
А вот что делать если загружаемый highload-блок уже есть на сайте как лучше поступить? Проверить есть ли у его элементов те же поля что и файле дампа, если нет просто делать исключение и выводить сообщение, а если структура данных одинакова обновлять и добавлять элементы (брать ID и имя элемента ) и вот тут не могу понять как построить обновление ведь ID элементов могут отличаться, либо обновлять только те элементы у которых ID совпадают?