SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.11.2013 11:33:40

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Расчет рейтинга у пользователей

Здравствуйте,  пытаюсь назначить рейтинг пользователям, по таким параметрам.

Кол-во лайков к посту пользователя.

Рейтинг необходимо рассчитать не от 0 до 10, а по типу ТИЦ т.е без ограничений. Исходя из рейтинга юзера появляются дополнительные возможности на сайте, пример рейтинг +200 появилась фича, +300 еще одна.
Вот так я сделал жалкое подобие того что хочу:

UPDATE users u, (SELECT user, SUM(vote) AS sum FROM post WHERE (vote>15 OR vote<0) GROUP BY user) p SET u.rating=p.sum/20 WHERE u.id=p.user;


Но минус в том что, если сейчас среднее кол-во лайков 60 все норм, а если будет 1000 то пользователь наберет ретинга +200 добавив всего один пост.

Неактивен

 

#2 07.11.2013 14:19:45

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Расчет рейтинга у пользователей

Можете складывать не количество лайков, а квадраты логарифма числа лайков для каждого поста.

Неактивен

 

#3 07.11.2013 17:54:17

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: Расчет рейтинга у пользователей

Плохо только, LOG(-1) воpвращает NULL, это не уменьшает рейтинг, хотелось бы если лайки отрицательные чтобы рейтинг не то что уменьшался на единичку а уменьшался в два раза быстрее чем прибавлялся

Неактивен

 

#4 07.11.2013 18:15:06

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Расчет рейтинга у пользователей

Знак можно приписать снаружи
sign(x)*pow(log(abs(x)),2)

Неактивен

 

#5 07.11.2013 19:59:38

Марк
Активист
Зарегистрирован: 31.05.2010
Сообщений: 157

Re: Расчет рейтинга у пользователей

Спасибо, так получше)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson