Я пытаюсь выяснить, насколько точно я должен убедиться, что я получаю только самые последние x сообщений из БД.
Мои текущие методы выборки работают следующим образом:
GetPeopleIFollowAnd loop over each UID
For each UID fetch his posts
Тем не менее, я не могу эффективно (быстро) получать только самые последние x сообщений. Как я могу это сделать?
Некоторые возможные идеи, которые у меня есть:
- Создайте новый узел, который каждый раз, когда один из ваших подписчиков публикует сообщение, будет добавляться под вашим UID с отметкой времени. Поэтому, когда я выбираю, я перебираю этот FollowersWhoCreatedRecently для каждого UID и делаю это только для первых 10
Проблемы, с которыми я сталкиваюсь при рассмотрении вышеупомянутого решения, состоят в том, что если бы у пользователя были миллионы людей, следующих за ним, это было бы ужасно медленным, когда дело доходит до обновления каждого из этих миллионов
Я обнаружил, что это может быть полезным. Как я мог это использовать?
Моя структура БД для постов выглядит следующим образом
Post
UID
postID
Media
media
image: URL
На основе структуры последователя, например:
WhoFollowsMeNode/UID/uid: true
Я должен был бы, каждый раз, когда пользователь публикует сообщения, проходить по этому списку, где для каждого пользователя я бы добавлял пост к временной шкале ... Это кажется невозможным, и тем не менее то, что, по-видимому, он делает здесь .