Реализация ленты активности?

Появилась задача — разработать ленту активности пользователей как в соц.сетях.

Гугление привело только к этому примеру: www.instantcms.ru/wiki/doku.php/разработка: компоненты: лента_активности


Подскажите, кто реализовывал, как вообще правильно проектировать этот модуль? Как описано в статье, или может писать большой запрос по всем таблицам и создавать кеш для каждого пользователя?

Просто судя по тому примеру, там не учтено например изменение контента, определение количества добавленного контента (например, добавлено 7 фотографий и т.п.)
  • Вопрос задан
  • 3311 просмотров
Пригласить эксперта
Ответы на вопрос 3
1) Группировать по интервалах времени, но большой минус — нагрузка на БД.
2) Денормализация (что я бы и выбрал).
Ответ написан
А в чем для вас основная проблема? Если в производительности — сделайте несколько серверов redis`а с выбором по диапазону пользователей. Весьма надежно и оочень быстро.
Ответ написан
Комментировать
yadeveloper
@yadeveloper
Если ваш проект предпологает большую нагрузку, я бы рекоммендовал использовать триггерную логику реализации (этот пожалуй один из немногих случаев, когда бизнес-логику приложения, действительно имеет смысл ложить в БД).

Для начала поймите, по какой формуле будет считаться ваш рейтинг. Скажем в этой формуле будет 5 составляющих. Формула несложная и ее можно считать на лету (хотя тут тоже можно заставить делать пересчет по триггеру, это правильный вариант).

Пользователь добавляет фотографию — составляющая формулы (поле в БД) инкрементируется, дергается триггер — пересчитывается общий результат. Пользователь оценил чью то фотографию (написал комментарий etc) — та же логика, но другое поле.

Для начала определились, по каким критериям вы будете рассчитывать конечные цифры, логически разбейте составляющие на модули (которые есть у вас в системе) и определите формулу. Это пожалуй наиболее сложная задача
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы