Основная проблема синхронизации заключается в том, что пользователь редактирует что-то в автономном режиме и одновременно редактирует в Интернете. Вам необходимо объединить две измененные части данных или использовать пользовательский интерфейс, чтобы пользователь мог сказать, какая версия верна. Если вы исключите возможность одновременного редактирования обоих документов, вам не придется решать эту проблему.
Метод обычно состоит в том, чтобы добавить поле «измененное» во все таблицы и сравнить измененное поле клиента для данной записи в данной строке с датой изменения сервера. Если они не совпадают, вы заменяете данные сервера.
Будьте осторожны с автоматически сгенерированными ключами - вам нужно убедиться, что ваша целостность данных сохраняется при копировании с клиента на сервер. Строгое повторное выполнение операторов SQL на сервере может привести к тому, что автоматически сгенерированный ключ изменится, и вдруг ваши внешние ключи будут указывать на записи, отличные от запланированных.
Часто при импорте данных из другого источника вы отслеживаете первичный ключ из внешнего источника, а также свой личный первичный ключ. Это облегчает определение изменений и различий между наборами данных в сложных ситуациях синхронизации.