Лучший подход для загрузки базы данных на устройство iOS - PullRequest
0 голосов
/ 04 декабря 2011

Да, здесь много вопросов по этой теме, поэтому я не смог найти удовлетворительного ответа.

Я работаю над небольшим проектом с некоторыми парнями.Идея состоит в том, чтобы добавить некоторые данные в базу данных, которые впоследствии можно будет использовать в приложении.База данных будет считываться только на устройстве (выберите операторы) и никогда не будет редактироваться пользователем.

Предполагается, что два парня будут выполнять подачу базы данных.Я сделал веб-страницу, где они могут войти в систему и добавлять / обновлять / удалять данные, как они хотят.Веб-страница написана на php, а данные хранятся в базе данных с использованием sqlite.

В приложении должна быть возможность поиска по типу поиска.

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

Мне нужно несколько советов о том, куда идти дальше.Некоторые важные вопросы:

  1. Является ли sqlite лучшим выбором для этого?Я мог бы изменить его на MySQL без особого труда, если это предпочтительнее.Или есть другое, лучшее решение?
  2. Как сохранить данные на устройстве и как их использовать?Есть ли хорошие рамки для этого?Мне нужно всего лишь сделать несколько простых операторов выбора на устройстве.
  3. Должен ли я использовать какие-либо из них в своем решении?
    • Базовые данные: я еще не знаком с этим, но, похоже, его очень много работы.(?)
    • JSON / REST: Должен ли я отправлять данные как JSON / REST?Я видел RESTkit , но я им не пользовался.
  4. Есть ли еще что-то, о чем я должен знать?

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

Ответы [ 3 ]

0 голосов
/ 04 декабря 2011
  1. По этому пункту, я думаю, вы говорите о базе данных сервера, поправьте меня, если я ошибаюсь.Я бы предпочел использовать MySQL на сервере, потому что он более надежен, чем SQLite.

  2. Вы можете использовать SQLite напрямую на устройстве или использовать CoreData.В обоих случаях у вас будет база данных SQLite на устройстве.Разница будет в том, как вы получите к нему доступ.Для прямого доступа к SQLite вы можете использовать SQLite C API (libsqlite3.0.dylib).CoreData также очень хорош, но требует больше времени для изучения, чем API SQLite C.

  3. Очень просто использовать JSON для связи с вашими веб-сервисами.PHP имеет очень хорошую поддержку JSON, и на устройстве вы можете использовать TouchJSON (https://github.com/TouchCode/TouchJSON)

  4. Я не знаю.:)

Надеюсьпомогает.

0 голосов
/ 19 марта 2013
1.  Is sqlite the best choice of database for this? I could change it to mysql without too much work, if that's preferred. Or is there another, better solution?

Да, Sqlite лучше

1.  How do I save the data to the device, and how do I use it? Are there any good frameworks for this? I only need to do some simple select-statements on the device.

NSFileManager - это то, что вам нужно использовать. Прежде всего, вам нужно запросить базу данных sqlite с сервера, который загрузит всю базу данных в вашу папку документов в приложении

1.  Should I use any of these in my solution?
•   Core Data: I'm not familiar with it yet, but it seems like it is a lot of work to use it. (?)

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

•   JSON/REST: Should I send data as JSON/REST? I've seen the RESTkit, but I haven't used it.

Вы можете использовать JSON для загрузки данных.

1.  Is there anything else I should know about?

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

0 голосов
/ 04 декабря 2011

это зависит. Если набор данных большой, я бы пошел с CoreData. Если он маленький, то простой NSArray / NSDictionary будет проще. Что касается передачи, я бы использовал простой PLIST или JSON. Все зависит от ваших потребностей и времени, которое вы хотите инвестировать в свой проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...