2013-07-15 4 views
0

Я разрабатываю приложение для iPhone. Я хочу получить базу данных с удаленного сервера и показать ее в своем приложении, поэтому я хочу знать, следует ли мне напрямую подключаться к удаленной базе данных MySQL, или если рекомендуется использовать третий слой, такой как PHP, ASP.Net и т. Д. для извлечения данных из удаленной базы данных.Подключение непосредственно к удаленной базе данных MySQL в iOS

+0

Да. вы должны использовать API для извлечения данных из удаленной БД. Это может быть в формате XML или JSON. – Codesen

ответ

5

Хотя вы можете использовать клиентскую библиотеку MySQL на прошивке, есть несколько причин, которые я бы рекомендовал использовать «третий слой» промежуточный подход:

  1. безопасность - Вы действительно хотите, чтобы встроить базу данных, имя пользователя и пароль в вашем приложении? (Даже если это «SELECT» только запись.)

  2. Производительность - Почему не кэшировать некоторые из результирующих данных, если это вообще возможно, а не полагаться исключительно на то, что ядро ​​базы данных MySQL вы используете. Это кэширование может иметь место на обоих концах (язык сценариев и локальное хранилище на устройстве iOS для автономного использования).

    Например, в зависимости от нагрузки/как часто данные изменяются, вы можете кэшировать данные на уровне веб-службы (возможно, сохраняя их в memcached или подобном, вместо того чтобы выполнять запрос и каждый раз ударять сервер базы данных). Аналогично, как только вы извлекли данные из веб-службы на устройство , вы можете кэшировать его там. (Потенциально через локальный SQLite магазин или просто сериализованные массивы, в зависимости от ситуации.)

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

  3. Обслуживание - Если передавать соответствующие данные в приложение IOS либо через JSON или XML, вы позволите для разумной степени изменения в схеме базы данных без нарушения каких-либо потенциально существующие приложения, которые были развернуты.

+0

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

1

Вам необходимо создать веб-службу, которая выведет набор API-интерфейсов, которые затем будут использоваться вашим iPhone-приложением для ввода/вытягивания данных. Затем вы можете кэшировать данные локально (на iPhone) в базе данных sqlite3. Наиболее распространенными форматами передачи данных являются JSON и XML.

Смежные вопросы