@StynuBlizz

Как формировать ленту подписок?

Есть приложение соцсеть где люди публикуют видео и могут подписываться друг на друга.Так вот вопрос в том как мне нужно формировать ленту подписок для пользователя( у которого допустим 200 подписок),как нужно проверять наличие новых публикаций у тех людей на кого я подписан? Как нужно это делать что-бы не положить бд? Примером того что нужно реализовать является лента подписок из Инстаграма.
  • Вопрос задан
  • 587 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. таблица-список пользователей, на кого Вы подписались (кого хотите читать)
2. таблица ленты: прочитанных Вами публикаций - ID-поста, ID-юзера и флаг(что прочитано)
3. "Не прочитано" < 200 => запрос к публикациям пользователей с сортировкой по TIMESTAMP и не забывать указывать LIMIT в SQL-запросе, в конце запроса...
4. Заносим прочитанные записи в таблицу ленты с флагом: "не прочитано"
5. Отображаем ленту постов из п.2.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Что мешает вместо того, чтоб проверять "нет ли чего нового" отправлять уведомление подписчикам в момент публикации?
Ответ написан
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Вам поможет websocket. Клиент сам ничего не запрашивает (если только пользователь по кнопочкам не нажимает). Обновление происходит тогда когда на сервере происходит публикация: клиент публикует новость, сервер смотрит кто подписан на этого человека, ищет активные подключения с подписчиками и если находит, то шлет им команду "есть обновление новостей", после чего у подписчиков загорается кнопочка "есть новые новости" или что-то типа того.
Ответ написан
sim3x
@sim3x
Самое простое решение - добавляем к модели пользователя поле с временем последнего получения подписок

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

А правильно - нужно сформировать м2м связь между юзерами и постами и устанавливать метку для каждой отдельной строки ( юзер_ид, пост_ид )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы