Реализации синхронизации между сервером и клиентом

Есть проект клиент(android)-сервер. На клиенте есть своя локальная база данных, также предусмотрено общение с сервером. Ведущее устройство получается клиент. Так как часто происходят действия которые нужно добавить в локальную базу и синхронизировать с сервером. Как правильно организовать логистику по синхронизации данных с сервером? выбрал пока такой путь:

У каждой записи есть метка времени последнего изменения. Unixtime вполне сойдет. Это поле ставит только сервер. Когда вы создаете на телефоне новую запись или редактируете пришедшую с сервера - ставите в метку 0. При синхронизации телефон отправляет на сервер список записей, у которых время 0(все измененные и созданные данные) и время последней синхронизации(0 по умолчанию). Сервер кушает данные, записывает изменения, и отдает текущее свое время(которое сохраняется на телефоне как время последней синхронизации) и все данные, время изменения которых больше присланного телефоном времени последней синхронизации.

Но встал в тупик, так как получается что id сервера на каждую запись, и id клиента различаются.

Придумал вариант с хранением на сервере поля deviceID, который хранит индекс с клиента. Но мне кажется что я не совсем правильно действую, так как теряю цепочку индексов сервера.

Подскажите пожалуйста какие варианты синхронизации можно придумать? Либо сценарий синхронизации клиент-сервер при первом запуске приложения.


Ответы (0 шт):