Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Расчет рейтинга у пользователей / 5 сообщений из 5, страница 1 из 1
07.11.2013, 17:57:54
    #38456714
Zhazhah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет рейтинга у пользователей
Здравствуйте, пытаюсь назначить рейтинг пользователям, по таким параметрам.

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

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

Код: sql
1.
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 добавив всего один пост.
...
Рейтинг: 0 / 0
08.11.2013, 05:23:01
    #38457289
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет рейтинга у пользователей
А у вас что, лайки привязываются к пользователю, а не к постам? Тогда захем вообще учитывать кол-во постов, да ещё и таким образом?
...
Рейтинг: 0 / 0
08.11.2013, 05:25:49
    #38457291
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет рейтинга у пользователей
Хотя поглядел на запрос, вроде к постам привязаны. Тогда не понимаю, как добавление одного поста поднимет сумму голосов на (200*20)=4000. Давайте DDL, объясняйте, как оно работает и чего конкретно хочется.
...
Рейтинг: 0 / 0
12.11.2013, 21:04:06
    #38462667
Zhazhah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет рейтинга у пользователей
Сделал вот так sign(x)*pow(log(abs(x)),2)
...
Рейтинг: 0 / 0
12.11.2013, 22:58:58
    #38462811
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет рейтинга у пользователей
Zhazhah,

Код: sql
1.
2.
3.
UPDATE users u
 set  u.rating = (SELECT SUM(vote) - SUM(vote) AS sum FROM post WHERE (vote>15 OR vote<0) and user = u.user) 
;



и всего делов ....

Все будут щасливы.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Расчет рейтинга у пользователей / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]