@Bku

Как надежно синхронизировать записи между мобильным приложением и базой 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.

Как организовать работу синхронизации, чтобы гарантированно понимать что записи синхронизировались?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zhaar
Отправлять с клиента данные по id=1 до тех пор, пока статус id_base не сменится с 0.
На сервере обрабатывать такую ситуацию, чтобы не дублировать уже полученные данные (т.е. на проверять наличие записи с таким id и ненулевым значением id_base). Если такая строка есть, то сервер ее не трогает, но отдает клиенту, чтобы он у себя проставил id_base по этой записи.

В случае, если первичная запись может измениться за это время, то тогда обновлять ее на сервере, но не создавать новую строку, т.е. работать с уже существующей.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы