mySQL база данни към приложение за iPhone

Имам MySQL база данни на уеб сървър и трябва да прочета данните от приложение за iPhone. Кой е най-добрият начин да направите това? Данните трябва да бъдат достъпни от уеб сървъра и ще се актуализират от време на време. NSURL Class ли е правилният път?

благодаря за всяка помощ.


person hanumanDev    schedule 27.11.2010    source източник


Отговори (2)


Предлагам проста уеб технология от страната на сървъра -- PHP, Ruby on Rails и т.н. -- която действа като основна RESTful-ish уеб услуга, която изпраща JSON. Това е лесно и не изисква много опит в програмирането - извеждането на JSON чрез PHP изисква един ред код, а заявката за извличане на данните изисква само няколко, например.

От страна на iPhone, ASIHTTPRequest прави невероятно лесно създаването на асинхронни заявки за актуализации и SBJSON прави превръщането на получените данни в NSArray от NSDictionaries невероятно лесно, само с няколко реда код.

Ключът към това да работи всичко е да следите отблизо датите на промяна на данните, както за да гарантирате изтеглянето на нови записи, така и за да сте сигурни, че iPhone получава всеки актуализиран запис.

Например всеки запис на MYSQL сървъра може да има LastModified поле, което използва командата on update CURRENT_TIMESTAMP, за да поддържа полето актуално. На iPhone ще съхраните и тези дати. Когато устройството поиска и актуализира, то първо търси последната дата на LastModified за таблицата, която актуализира, и я изпраща на сървъра. Кодът на сървъра изпраща обратно всички записи, където LastModified е по-голяма от изпратената дата.

Това може да бъде допълнително рационализирано чрез наличие на поле DateCreated от страната на сървъра също за всеки запис. Това позволява на сървъра да върне два набора от данни, един, където полето DateCreated е по-голямо от изпратената дата на LastModified -- това ще бъдат вмъквания в базата данни на iPhone -- и един набор, където датата на сървъра LastModified е по-късна от изпратената в, но полето DateCreated е по-малко или равно на изпратената дата -- това са редовете с данни, които се нуждаят от актуализиране.

Току-що написах приложение, което прави това, така че проблемите са свежи в съзнанието ми. Надявам се това да помогне.

person Matthew Frederick    schedule 27.11.2010

Не можете да се свържете директно с базата данни. Ще трябва да имате страница на вашия сървър, която изхвърля необходимите области от вашата база данни в JSON или XML формат. Трябва да погледнете TouchJSON.

person Ross    schedule 27.11.2010