Хорошая альтернатива SQL-доступу на iPhone - PullRequest
0 голосов
/ 21 января 2010

Я работаю над приложением для бизнеса, которое по сути является каталогом. У клиента есть веб-сайт, который использует базу данных MySQL, но он не хочет, чтобы это использовалось приложением. Его сайт предлагает RSS-каналы, но я не думаю, что это было бы хорошей идеей. Приложение должно быть доступно для поиска на основе ряда (необязательных) факторов и отображать детали каждого элемента при его выборе.

Почему-то я не думаю, что RSS - это путь, но как его убедить? Есть ли альтернативный способ, который будет работать? Каталог часто обновляется, и это означает, что загрузка обновлений будет необходима. Должен ли я попытаться убедить его разрешить доступ только для чтения?

Предполагая, что я использую RSS, какой график обновления будет наилучшим? Как будет работать поиск? Я в замешательстве ...

Обратите внимание:

[Мысли вслух здесь ...]

{ Я новичок в разработке для iPhone, это мое первое приложение . Я занимался веб-сайтами более 6 лет, и я знаю HTML, JS, CSS, PHP, MySQL и Visual Basic 2008. Я изучал языки рабочего стола (C, C ++, Java), и сейчас я изучаю Objective C во время работы. }

EDIT:

Я не знаком с JSON. Учебные ссылки?

Ответы [ 2 ]

4 голосов
/ 22 января 2010

RSS не тот ответ, который вы ищете. RSS не очень подходит для произвольных структурированных данных, он построен на синдикации веб-контента.

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

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

Я бы использовал JSON в качестве формата обмена данными, поскольку он намного проще, чем работа с XML.

2 голосов
/ 21 января 2010

Насколько велика база данных? Насколько велики обновления RSS? Весь каталог доступен через этот поток RSS? Должно ли приложение работать без подключения к интернету? Ответы здесь, скорее всего, будут определять ваше решение.

Я бы не стал защищать прямой доступ к MySQL. Это большой риск для безопасности, и он очень зависит от реализации. Например, ваш клиент не может выполнить редизайн базы данных, не сломав приложение для iPhone.

Если у вас есть доступ к веб-сайту (или вы можете убедить клиента), возможно, хорошим решением будет использование ваших сильных сторон и предоставление интерфейса RESTful для SQL через Интернет. Тогда ваше приложение для iPhone может быть просто парсером и интерфейсом в формате JSON или XML (или как угодно). Вам не нужно беспокоиться о магазине поддержки или поиске на iPhone; все это будет сделано на стороне сервера.

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

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