2015-07-02 4 views
0

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

Каждое лицо (то есть документ) подается каждому пользователю только один раз. После того, как пользователь выполнит действие с другим человеком (в документе), этот документ снова не будет показан одному и тому же пользователю.

Что было бы лучшим подходом к построению такой системы?

  • Сохранять идентификаторы документов, которые уже видели, и отправить их, чтобы отфильтровать их в поисковой системе. Этот подход кажется плохим, потому что вы в конечном итоге отправляете потенциально тысячи идентификаторов в запрос фильтра к поисковой системе.
  • Храните идентификаторы пользователей, которые предприняли действие над документом, в документе, хранящемся в документе и в поиске запрос отправляет идентификационные файлы, запрашивающие идентификатор пользователя, для фильтрации из указанного поля. Такой подход может привести к увеличению размера документа, поскольку потенциально тысячи идентификаторов хранятся в документе.
  • Создайте индекс для каждого пользователя с необходимыми документами и удалите документы из индекса, когда пользователь предпринимает действия над ними. Недостаток здесь - это трудно поддерживать и обновлять потенциально тысячи индексов.
  • Храните просмотренные документы в объекте пользователя в базе данных и запрашивайте документы. Как только вы получите результаты, попросите диспетчера пропустить или удалить документы из списка, который пользователь уже видел в соответствии с тем, что хранит пользовательский объект. Недостатком здесь является то, что вы можете в итоге получить 20 полезных результатов, и все 20 были замечены пользователем.

Должен быть лучший способ создания такого типа приложений, которое масштабируется лучше.

Любые идеи?

ответ

0

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

+0

http://stackoverflow.com/questions/34522248/how-to-avoid-calling-server-for-duplicate-data-using-using-google-maps-api Проверьте это также –

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