Вот некоторые очень основные мысли по этому поводу.
В идеальном случае вы бы синхронизировали общие рабочие метаданные, а ваш автономный режим позволил бы рабочим процессам только для вставки добавлять новые данные на основе этих метаданных. Это позволит довольно легко синхронизировать данные позже, просто последовательно отправляя их в веб-службу, а затем помечая как таковые в базе данных или полностью удаляя строки.
Если вы пойдете с чем-то подобным, вы, вероятно, не захотите подходить к sqlite как к rdbms. То, что вам, вероятно, нужно, — это широкая структура таблицы, предназначенная в основном для хранения ожидающих запросов, или что-то, что будет хранить такие вещи, как полезные данные json, которые вы отправите позже. Это означает, что ваша локальная БД будет разработана не для вашей модели данных, а для API вашего веб-сервиса.
Если вам нужно выполнить обновление (перезапись рабочих процессов), вам нужно приложить много усилий для разрешения конфликтов, но в основном применяется то же самое. Вы, вероятно, захотите добавить гораздо больше информации, например временные метки и другие данные, связанные с разрешением конфликтов.
Однако оттуда вы сможете повторно использовать API вашего приложения для синхронизации, а не искать для этого конкретный инструмент.
person
Chris Travers
schedule
12.05.2013