Вывод популярных записей на сайте за определенный срок, как?
Есть база со статьми и нужно как-то сделать сортировку по популярности за неделю, месяц или любой другой срок.
Не могу до конца понять как это рациональнее всего реализовать.
В базе у каждой записи есть время когда она был загружена и счетчик просмотров, но как я понимаю, эта информация будет бесполезна для такой сортировки. Ее можно использовать только для сортировки за ВСЕ время.
Думаю, эту проблему уже миллион раз решали, не подскажите как?
ну значит надо еще агрегировать статистику по просмотрам за сутки. Самый простой вариант - завести лог просмотров, но тогда база быстро забьется всякой чухней. Далее мы можем оптимизировать это дело и просто раз в сутки ресетить счетчик просмотров в ноль и записывать сколько было просмотров за такую-то дату. Так у нас будет достоверная инфа для выборки.
Почему же, вполне себе полезные функции. Сначала нужно отсеить все статьи старше 7 дней, потом все статьи сортировать по кол-ву просмотров. Ничего сложного нет.
Нет, так не получится. Таким образом я получу просто все записи за 7 дней с сортировкой по просмотру. А что если запись, опубликованная год назад, наберет за последние 7 дней бОльшое число просмотров? Она не попадет в эту выборку при вашем подходе.