IPhone SQLite DB и рекомендации по синхронизации и взаимодействию с базами данных на базе Web
Я занимаюсь разработкой своего второго приложения для iPhone и ищу архитектурные рекомендации по обработке БД.
Идея такова:
1. База данных информации хранится на сервере (стек LAMP), и информация доставляется на устройство через JSON. Эта часть реализована.
-
Пользователь может "любить" элемент в базе данных, который хранит его в SQLite на своем локальном устройстве.
-
Пользователь также может отправлять новые элементы на удаленный сервер, который еще не существует, что делает их доступными для других пользователей в избранное.
-
Пользователь может искать обе базы данных через один интерфейс поиска для поиска элементов.
Я пытаюсь решить структуру данных для этого и как обращаться с результирующими объектами из базы данных. Я думаю, у меня есть два варианта для объектов:
-
Удаленная БД и локальная БД имеют один и тот же тип объекта, а локальный БД хранит идентификатор удаленного элемента, чтобы связать два
-
Отдельные объекты для удаленного элемента и локального элемента
Приветствуются любые идеи, мысли и т.д.
Ответы
Ответ 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 для синхронизации?