2012-06-07 4 views
0

У меня есть приложение iOS, которое представляет содержимое в таблицеView. Я добавил функцию «like/dislike», которая взаимодействует с моей базой данных (я использую Parse.com). Каждый раз, когда кому-то нравится/не нравится часть контента, специфика отправляется в базу данных Parse. Для каждого фрагмента контента я бы хотел рассчитать и отобразить процент «симпатий» по «нравится» + «не нравится». Это довольно простая математика, но я не могу окунуться в лучший способ разработки моей таблицы базы данных и наиболее эффективный способ вычисления «любимого» процента для каждого фрагмента контента до того, как физически появится tableView.Начинающие проблемы с базой данных

Как бы то ни было, у меня уже есть петля в таблице tableView viewDidLoad, которая сравнивает содержимое из другой таблицы базы данных с таблицей «как/не нравится», чтобы восстановить состояние кнопки «как/не нравится» пользователя (если они уже понравилось/не понравилось содержание).

Сначала я думал о создании массива в начальном цикле viewDidLoad. Однако, используя тип запроса whereKey: equalTo: для каждого содержимого части, чтобы просто найти количество симпатий/антипатий, требуется навсегда. Как и было предсказано, он очень медленный и в cellForRowAtIndexPath.

Худший случай, я могу сделать эти расчеты серверной стороной и просто потянуть «понравившийся» процент. Тем не менее, я хотел бы как-то реализовать это в приложении. Я полный новичок, так что, возможно, я ошибаюсь.

Вот основа моей таблицы базы данных: enter image description here

Edit: Я сумел создать серверную программу, которая вычисляет процент пользователей, что «как» куски контента. Мое приложение извлекает этот процент из базы данных во время выполнения. Чтобы сделать процент изменения более отзывчивым, когда пользователь «любит» что-то, я локально вычисляю обновленный процент. Проблема здесь в том, когда пользователь выходит из приложения и снова открывается, данные перезагружаются. Если серверная программа не была запущена в последнее время, приложение отобразит старую «понравившуюся» процентную ставку (наиболее актуальная% еще не будет рассчитана). Два решения, которые я вижу, чтобы это исправить являются:

  1. Запуск серверной части программы каждые 1-3 мин
  2. сообщение больше данных в базу данных, когда кто-то любит содержание (это повлечет за собой дополнительные запросы к базе данных для каждого 'как').

Я думаю, что оба эти варианта слишком дороги для того, что я пытаюсь выполнить.

ответ

0

Я предлагаю оставить расчеты на стороне сервера и ответить на информацию, которая будет использоваться в приложении. Это избавит вас от обработки и анализа входящих результатов.

У вас больше мощности обработки на сервере, чем на устройстве.

+0

Спасибо за помощь. См. Мое редактирование. Я ценю любые дополнительные советы, которые вы можете предоставить. – mnort9

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