Как отсортировать статьи по популярности?

У меня есть таблица с тысячами записей новостных статей. На сайте есть страница со списком новостей с возможностью сортировки статей по популярности с бесконечной прокруткой. Таблица выглядит примерно так:

id | title | description | views | createdAt

Ключевыми столбцами для определения популярности являются виды и созданные At.

Какой алгоритм / формулу я могу реализовать, чтобы отсортировать статьи по популярности?

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

1

Решение

Одним из подходов может быть «наказание» статей по возрасту. Например, за каждый день с момента публикации статьи уменьшайте оценку на 100 (или какое-либо другое произвольное число, соответствующее количеству трафика на вашем сайте). Таким образом, старые статьи будут постепенно выталкиваться, а новые будут иметь возможность просмотра:

SELECT   *
FROM     articles
ORDER BY views - 100 * DATEDIFF(CURRENT_DATE, createdAt) DESC
3

Другие решения

Просто сделайте это как, надеюсь, это будет работать:

 order by views,createdAt
0

Вы можете иметь еще один столбец с названием «lastView»

Идея состоит в том, чтобы напечатать самые последние популярные элементы, а не только популярные.

В своем запросе вы можете указать условие:
выберите * из таблицы, в которой создан> = ‘latestDate1’ и lastView> = ‘недавнийDate2’ порядок по представлениям desc; основываясь на вашей необходимости.

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

0
По вопросам рекламы [email protected]