Я некоторое время пытался найти, и не нашел правильного убедительного ответа.Отсюда и вопрос.Я знаю, что 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 строк в таблице профиля.