Как отслеживать изменения базы данных на локальном SQlite перед обновлением веб-базы данных - PullRequest
2 голосов
/ 23 марта 2011

Я занимаюсь разработкой мобильного приложения и не знаю, как это сделать. Я собираюсь использовать Appcelerator Titanium для iPhone.

Я не хочу, чтобы пользователь совершал звонки в онлайн-базу данных всякий раз, когда происходит изменение локальной базы данных SQLite на телефоне пользователя.

Я хочу сделать это, чтобы пользователи могли работать в автономном режиме.

Позже, когда пользователь нажимает кнопку, я хочу, чтобы все изменения были скопированы в онлайн-базу данных (только то, что изменилось).

Я не знаю, как лучше всего это сделать.

Одним из очевидных способов является то, что при каждой синхронизации я копирую всю базу данных с телефона на веб-сервер. Но почему-то это кажется нелогичным, а может и нет.

Ищу предложения.

1 Ответ

3 голосов
/ 23 марта 2011
  1. Используйте столбец «последнее обновление» в вашей базе данных.

  2. Ведите таблицу событий синхронизации, записывая метки времени каждого события синхронизации.

  3. При синхронизации фильтруйте строки, которые были изменены с момента последней синхронизации.

Я бы структурировал свою базу данных так, чтобы каждая запись имела UUID - это так, чтобы вы могли сопоставлять строки локальной базы данных с зеркальными на сервере.

Надеюсь, это даст вам некоторые идеи.

...