Коллеги, добрый день!! Есть статейный сайт, движок самописный. Хочется сделать блок с выводом наиболее читаемых статей в течении последних 7 дней. Что приходит на ум? Первое, это сделать таблицу с полями id, date, count. Тогда при загрузке статьи ищем строку по id-date, если находим, увеличиваем count, если не находим, добавляем строку id-date и count=1. Второе, менее красивое решение, в таблицу со статьями вставляем столбик с датой. Т.е. при загрузке первой статьи в текущем дне создаем столбик текущей даты, и затем в течении дня плюсуем количество просмотров каждой статье. В обоих случаях растет количество данных, надобность в которых отпадает через неделю. Подскажите, какие алгоритмы еще существуют...
Поле hits часто присутствует у статей. Статистика по этому полю за все время малополезная (когда-то статья могла быть хитовой, но сейчас это далеко не так, хотя значение поля впечатляющее). Вывод: если вы не любитель истории, периодически обнуляйте это поле, например раз в неделю --- Добавлено --- P.S. Конечно, это будет не «в течениЕ последних 7 дней», а просто топлист недели.
Попробуйте, например, ежедневно у топовых статей отнимать кол-во хитов, имеющихся у статьи, которая находится на границе видимого топлиста, а всем прочим обнулять. К «семи дням» это отношения не имеет, но таким образом можно создать конкуренцию на границе видимого топлиста.