Выбор между plist в базе данных iphone и mysql (серверная часть: mysql + apache + php веб-сервер) - PullRequest
0 голосов
/ 24 июня 2011

Я некоторое время пытался найти, и не нашел правильного убедительного ответа.Отсюда и вопрос.Я знаю, что plist и mysql находятся на двух противоположных сторонах, но у меня есть подход к решению с использованием plist, который может быть простым.Но я сомневаюсь в подходе к решению и считаю, что это не элегантное решение.

Модель:

У пользователя есть профиль с различной информацией, такой как имя, адрес электронной почты, дата рождения и т. Д. Он также имеетнабор или список другой информации, такой как книги, хобби и т. д. Таким образом, по существу, с точки зрения plist, это будут вложенные массивы.

<name>
<email> 
<date of birth>
<books>
  <book1>
  <book2>

<Hobbies>
  <hobby1>
  <hobby2>

...

С точки зрения mysql db будет 3 таблицы.Один для профиля, один для книг и один для хобби.Одна строка на профиль с внешним ключом для таблицы «Книги и хобби».

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

Подходит решение:

Подход 1: (с использованием plist)

Для каждого пользователя сохраните файл plist на сервере.Чтобы получить информацию о iphone, создайте http-запрос для получения plist, затем отобразите информацию о iphone из plist стандартными методами.Так что, если сервер находится на xyz.com, я могу получить plist по пути xyz.com/userid/profile.plist

Подход 2: (используя mysql)

Хранить данные в mysqlбаза данных.Отправьте http запрос на доступ к файлу php.Код php запрашивает таблицу профилей по идентификатору пользователя, а затем запрашивает таблицу «Книги и хобби» по внешним ключам.Создайте массив результата.И отправьте полученный массив обратно на iphone.Теперь iPhone отображает информацию о профилях из этого массива.

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

В конечном итоге будет создано 1000 профилей.При первом подходе это означает, что на сервере будет 1000 различных файлов plist.Во втором подходе это означает 1000 строк в таблице профиля.

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Не подход 1, если только по той причине, что кто-то может заменить «идентификатор пользователя» чужим идентификатором пользователя и получить xyz.com/userid/profile.plist

0 голосов
/ 24 июня 2011

Подход 3: (используя [вставить имя базы данных на стороне сервера] и CoreData или SQLite )

Создать таблицы в [вставить имя базы данных на стороне сервера] изатем создайте необходимые структуры таблиц / модели сущностей для вашего устройства.Если у пользователя нет никаких данных на устройстве, отправьте запрос http, вставьте его в локальный магазин на устройстве и считывайте с устройства с тех пор или до тех пор, пока не потребуется обновление.

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