Сделать динамический рейтинг

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

Дело в том, что если какой-то пользователь активно жил на сайте, а потом забивал на него, то он все надолго равно остается в лидерах рейтинга.

24 комментария

avatar
А вы бы хотели что бы при выходе на пенсию она бы с каждым днем уменьшалась ну или вообще не выдавалась?
Но ваша мысль понятна и плагин может быть полезен в зависимости от специфики проекта.
avatar
Казалось бы, при чем тут пенсия… Какое-то странное сравнение :)
У меня сейчас на сайте в топе люди, которые не писали на сайте 1-2 года. Думаю, что это не правильно.
avatar
Ну просто участники получают этот самый рейтинг за создание полезного материала, который в свою очередь популяризирует проект и по всей видимости несет в себе пользу, которая выливается в доход автора проекта. Но это конечно грубое сравнение, но тем не менее. И как сказал выше в каких то проектах это может стать фишкой, а в каких то пользователи могут не захотеть участвовать в такой гонке, где ты со временем все потеряешь :)
avatar
Хорошо понять суть динамического рейтинга можно взять пример сайта, на котором можно проголосовать только в плюс. Итак, пользователь набирает большой рейтинг и попадает в топ, а потом начинает постить фигню. При этом он остается в топе, если другие пользователи не смогли перегнать его ПРОШЛЫЕ посты.

Так что мне кажется, что рейтинг должен отражать его текущую пользу сайта, а не то, что он сделал когда-то. Ну и не зря же на популярных сайтах используется такой способ.
avatar
Интересная идея — вычитать рейтинг, за не активность пользователя. Можно сразу видеть самых активных за какой-либо период.
avatar
Да, но это немного костыль, который сейчас легче всего организовать.
avatar
Решил посмотреть, как сделано на Хабре. Но сразу скажу, идея взята не оттуда. Я сам с толкнулся с этой проблемой.

Что такое рейтинг?

Или Хабрасила — ещё один параметр, которым можно хвастаться (помимо кармы и живота).

Чем больше рейтинг пользователя, тем выше он находится в общем списке хабрапользователей (есть и другие загадочные преимущества, но о них известно лишь избранным).

Это динамичный показатель, зависящий от активности пользователя на сайте: все плюсы и минусы к постам, комментариям, вопросам и ответам прямым образом влияют на величину рейтинга (но не на карму!). Если кто-то положительно оценивает ваши посты и комментарии, то рейтинг будет расти (справедливо и обратное), но если бездействовать, то со временем рейтинг примет значение половины кармы. Впрочем, даже если проявлять активность, рейтинг всё равно будет падать: за былые заслуги. Иногда он начинает жить своей жизнью, и это нормально.

Наглядный пример. Допустим, вы написали пост с рейтингом +100 — это добавило к вашему персональному рейтингу величину Х. Через несколько десятков дней этот самый Х вычтется, тем самым вернув вас на прежнее место.

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

Кстати, пример этого сайта — netlanc. Уже болше полугода ничего не пишет, но остается в лидерах. И думаю, что там и останется, даже если писать не будет несколько лет. P. S. Против данного пользователя ничего не имею.
avatar
Было бы логично сделать по аналогии с местным топом публикаций. То есть вкладки «за все время», «за месяц», «за семь дней», «за день». Ну и по умолчанию показывать, скажем, рейтинг пользователей за неделю. И никому не будет обидно.

Другое дело что непонятно как это считать…
avatar
Думал тоже об этом варианте. Ну а как считать… просто брать посты и комментарии за нужный период. Но проблема в том, что за пользователя еще можно голосовать в ручную.
avatar
Возникла такая идея:
Пользователь написал статью,+100, получил +Х к рейтингу, если он не будет заходить на сайт, каждый день у него будет высчитать 0.1% все го его рейтинга, но если он будет заходить рейтинг будет стоять на месте(можно проверять по ip)
Статьи он может не писать, мало ли не когда или просто нет не чего на эту тему, так будет честно ведь?
avatar
Согласен, уменьшение рейтинга в случае отсутствия на сайте вполне логично. Хочешь, что бы рейтинг не падал — периодически заходи на сайт.
avatar
причем, по IP проверять ненужно.
Лучше просто смотреть дату последнего посещения сайта пользователем — LS и так держит в базе дату, когда пользователь был на сайте в последний раз.
avatar
Интересный вариант. Но опять же, старички могут надолго засесть в топе что не есть хорошо.
avatar
Ну смотрите, я сижу например на вашем сайте, очень много общаюсь, пишу топы, комментирую, потом вдруг я женился, захожу к вам на сайт уже реже, не пишу пару месяцев, а потом у меня такая интересная статья, я пишу ее на ваш сайт, и тут бац ваш рейтинг ниже положенного и вы не можете отправить статью:)
Или заходишь в профиль а там твой рейтинг упал на 50-70% и ту пользователь скажет:нахер этот сайт!:)
avatar
а моя идея справедливая
avatar
а еще можно плюсовать по 0,1% к рейтингу для «не справедливо» заминусованных))
avatar
верно
avatar
Shelvin можно ссылку на ваш сайт?
avatar
Ребят просто удаляйте акки у которых не было активности в течении года и не стройте сложные схемы :)
avatar
Перед удалением шлите уведомление на почту непосредственно за месяц и за неделю.
avatar
Воу Воу уный человек:)
avatar
Эта практика встречается гораздо чаще чем необоснованная манипуляция с рейтингом, которая достаточно затратна учитывая перезапись каждый день десятки тысяч человек(http://kosmetista.ru/), даже тех кто давным давно не заходил. Плюс к тому же у кого рейтинг уже упал до 0, все равно будут проходить через этот цикл проверки, но уже без сохранения записи в бд, конечно же.
avatar
В последнем предложении я не прав, все таки мы можем делать выборку для тех у кого рейтинг > 0.
avatar
Удалять пользователей? Я считаю это не правильно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.