Я нашел эту статью о синхронизации:
http://www.databasejournal.com/features/sybase/article.php/3769756/The-Missing-Sync.htm
Это не касается технических деталей, но вы можете догадаться, какой тип кодирования будет реализовывать эти стратегии.
У меня также нет причудливых уведомлений от моего сервера, поэтому мне нужны стратегии синхронизации.
Например, у меня есть список компаний в моем ModelLocator. Он не очень часто меняется, он недостаточно велик для разбивки на страницы, я не хочу перезагружать все это (removeAll ()) при каждом действии пользователя, но я не хочу, чтобы мое приложение аварийно завершало работу или ОБНОВЛЯЛО поврежденные данные если он был ОБНОВЛЕН или УДАЛЕН из другого экземпляра приложения.
Что я делаю сейчас, так это сохраняю в СЕССИИ ВЫБОР даты и времени. Когда я возвращаюсь для обновления данных, я выбираю, где last_modified> $ SESSION ['lastLoad']
Таким образом, после загрузки данных изменяются только строки (в большинстве случаев 0 строк).
Очевидно, вам нужно ОБНОВИТЬ last_modified для каждого ВСТАВКИ и ОБНОВЛЕНИЯ.
Для DELETE это более сложно. Как указывает парень в своей статье:
«Как мы можем отправить запись, которая больше не существует»
Вам нужно указать flex, какой элемент следует удалить (скажем, по идентификатору), чтобы вы не могли действительно УДАЛИТЬ при УДАЛЕНИИ:)
Когда пользователь удаляет компанию, вы делаете ОБНОВЛЕНИЕ вместо: удалено = 1
Затем в компаниях по обновлению, для строки, где удалено = 1, вы просто отправляете обратно идентификатор, чтобы согнуть его, чтобы убедиться, что эта компания больше не входит в модель.
И последнее, но не менее важное: вам нужно написать функцию, которая очищает строки, где удалено = 1, а last_modified старше, чем ... 3 дня или что вы считаете нужным.
Хорошо, что если пользователь по ошибке удалил строку, она все еще находится в базе данных, и вы можете сохранить ее от реального удаления в течение 3 дней.