IPhone SQLite DB и рекомендации по синхронизации и взаимодействию с базами данных на базе Web

Я занимаюсь разработкой своего второго приложения для iPhone и ищу архитектурные рекомендации по обработке БД.

Идея такова: 1. База данных информации хранится на сервере (стек LAMP), и информация доставляется на устройство через JSON. Эта часть реализована.

  1. Пользователь может "любить" элемент в базе данных, который хранит его в SQLite на своем локальном устройстве.

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

  3. Пользователь может искать обе базы данных через один интерфейс поиска для поиска элементов.

Я пытаюсь решить структуру данных для этого и как обращаться с результирующими объектами из базы данных. Я думаю, у меня есть два варианта для объектов:

  • Удаленная БД и локальная БД имеют один и тот же тип объекта, а локальный БД хранит идентификатор удаленного элемента, чтобы связать два

  • Отдельные объекты для удаленного элемента и локального элемента

Приветствуются любые идеи, мысли и т.д.

Ответы

Ответ 1

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

http://blog.deeje.tv/musings/2009/06/notes-on-writing-a-history-driven-client-server-synchronization-engine.html

Ответ 2

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

Ответ 3

Если вы ищете существующий API, в среде QuickConnectFamily есть среда, которая работает в UIWebView с использованием JavaScript как для браузера, так и для установленных баз данных SQLite. Я также близок к тому, чтобы иметь чистую реализацию Objective-C для тех, кто не пишет гибридные приложения.

Версия javascript также работает для Android.

http://www.quickconnectfamily.org

Ответ 4

Является ли SQLite предоставленным API для синхронизации?