Как надежно синхронизировать записи между мобильным приложением и базой MySql?
Задача простая, но не могу понять как сделать надежную синхронизацию.
Есть мобильное приложение на андройд (SQLite). К примеру в нем таблица Table (_id, field, id_base), где id_base - id с базы сервера
Есть база (MySql). Таблица Table (id, field).
Алгоритм:
1) В приложении сохраняю запись: _id=1, field="blabla", id_base=0
2) Отправляю в mySql (через php), там записывается: id (autoinc) (он же id_base в приложении) = 1, field ="blabla"
3) возвращаю id_base в приложение чтобы там его записать в запись и в дальнейшем понимать что эти записи связаны.
Все хорошо в принципе работает, но кроме случая если запрос на сохранения отправили на сервер, запись там сохранилась, но по какой либо причине в приложение не дошел id_base. Поэтому связи между записями не происходит и в следующий раз снова создатся новая вторая запись в mysql.
Как организовать работу синхронизации, чтобы гарантированно понимать что записи синхронизировались?
Отправлять с клиента данные по id=1 до тех пор, пока статус id_base не сменится с 0.
На сервере обрабатывать такую ситуацию, чтобы не дублировать уже полученные данные (т.е. на проверять наличие записи с таким id и ненулевым значением id_base). Если такая строка есть, то сервер ее не трогает, но отдает клиенту, чтобы он у себя проставил id_base по этой записи.
В случае, если первичная запись может измениться за это время, то тогда обновлять ее на сервере, но не создавать новую строку, т.е. работать с уже существующей.