За последние 24 часа нас посетили 5319 программистов и 449 роботов. Сейчас ищут 199 программистов ...

Статейный сайт: ТОП недели: алгоритм

Тема в разделе "PHP для новичков", создана пользователем Avega, 14 фев 2020.

  1. Avega

    Avega Новичок

    С нами с:
    14 фев 2020
    Сообщения:
    1
    Симпатии:
    0
    Коллеги, добрый день!!

    Есть статейный сайт, движок самописный. Хочется сделать блок с выводом наиболее читаемых статей в течении последних 7 дней.

    Что приходит на ум?

    Первое, это сделать таблицу с полями id, date, count. Тогда при загрузке статьи ищем строку по id-date, если находим, увеличиваем count, если не находим, добавляем строку id-date и count=1.

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

    В обоих случаях растет количество данных, надобность в которых отпадает через неделю.

    Подскажите, какие алгоритмы еще существуют...
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.494
    Симпатии:
    1.033
    Адрес:
    Лень
    insert on duplicate update
    создал статью - записал в бд (название/теги/просмотры/текст)
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.680
    Симпатии:
    425
    Поле hits часто присутствует у статей. Статистика по этому полю за все время малополезная (когда-то статья могла быть хитовой, но сейчас это далеко не так, хотя значение поля впечатляющее). Вывод: если вы не любитель истории, периодически обнуляйте это поле, например раз в неделю ;)
    --- Добавлено ---
    P.S. Конечно, это будет не «в течениЕ последних 7 дней», а просто топлист недели.
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.680
    Симпатии:
    425
    Попробуйте, например, ежедневно у топовых статей отнимать кол-во хитов, имеющихся у статьи, которая находится на границе видимого топлиста, а всем прочим обнулять. К «семи дням» это отношения не имеет, но таким образом можно создать конкуренцию на границе видимого топлиста.