Лучшие стратегии для синхронизации, когда локальные данные изменяются несколько раз

Я много читал о стратегиях автономного кеширования, но, к сожалению, не нашел ничего, что могло бы удовлетворить мои требования.

Допустим, у меня есть список заказов в моей локальной базе данных, которые необходимо синхронизировать с сервером, если один из них будет изменен. Заказ может иметь несколько статусов, например: Новый, Начатый, Приостановленный и Завершенный. Изменения статуса должны синхронизироваться с сервером последовательно, потому что порядок также важен.

Создание таблицы со столбцом «isModified» не подходит для меня, потому что мне нужно синхронизировать каждое изменение статуса последовательно, а не только последнее.

Каковы наилучшие стратегии сохранения всех изменений статуса, когда устройство отключено? Я думаю о дублировании таблицы заказов или создании новой для данных синхронизации, потому что могут быть и другие объекты, а не только заказы.

Любые советы будут высоко ценится.

0
0
377
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используйте базу данных Firebase для автономной базы данных. Он автоматически синхронизируется при активном подключении к Интернету.

Добавьте строку ниже в свой класс Application:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Спасибо, но, к сожалению, я не могу использовать сервисы Google Play в своем приложении, и у меня уже есть база данных Room, которую я хочу использовать.

Blehi 08.05.2018 13:20

привет @Blehi, ты наконец понял какую-нибудь стратегию? Мне нужно что-то вроде того, что вы просили!

Nicolas400 04.11.2020 21:32

Я использовал другую локальную таблицу, предложенную @ F43nd1r в принятом ответе. Каждая строка в таблице содержит одно событие для синхронизации. Для меня также важен порядок событий, и я синхронизирую каждую строку одну за другой, упорядоченную по идентификатору. Также обратите внимание, что я сохраняю каждое событие как строку JSON (чтобы быть готовым к синхронизации), но, возможно, вам это не нужно.

Blehi 09.11.2020 11:54
Ответ принят как подходящий

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

Другие вопросы по теме