@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.

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

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

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

Войти через центр авторизации
Похожие вопросы
MFMS Москва
от 150 000 до 250 000 руб.
«По Полочкам» Москва
от 180 000 до 250 000 руб.