Алгоритм системы рейтинга юзеров
1.
Игорь (25.12.2009 / 19:09)
Ребята, подскажет алгоритм системы рейтинга юзеров на мускуле
а то я зделал но совсем простенький: добавил в таблицу юзеров поле с рейтингом, и если юзер ставит + то рейтинг повышается на +1, а если минус то обратно, но хотелось бы зделать какието ограничения, например чтоб юзер за одного пользователя смог голосовать 1 раз в стуки, и т.д. может лучше это все дело делать в отдельной таблице? Какие будут мнения?
2.
Tony V (25.12.2009 / 19:20)
Отдельная таблица, в неё записываешь "Кто, кому, какую оценку поставил и время этой оценки"
3.
Игорь (25.12.2009 / 19:35)
2.
Дедушка Мороз, а может так и зделать но без поля какую оценку поставили, это поле будет в таблице юзера и к нему сразу +1 или -1 ставить. система будет +/- 1
4.
Олег (25.12.2009 / 21:24)
Сделай тиаблицу votes где такие поля user_id(ид юзера за кого проголосовали),type(поле типа enum или set, который содержит 2 значеня - plus/minus), user_id_votes - ид юзера, который поголосовал, date (дата, тип DATETIME)
Ну соответсвенно чтобы затем выбрать все голоса конкретного пользователя -
<? $sql = "SELECT COUNT(*) AS cnt WHERE user_id = $user_id AND type = 'plus'"; ?>
5.
chiper (27.12.2009 / 09:13)
Делай еще одну таблицу. Тогда сможешь посчитать количество плюсов и минусов
6.
ramzes (27.12.2009 / 14:49)
На кой фиг еще одна таблица нужна?
В профиле +2 поля.
rating, lastvote.
if($user['lastvote'] < (time()-(3600*24))){
голосуем. rating = rating+1 }else{
еще рано. }
ни каких лишних запросов, ни каких лишних таблиц. Эффект то же.
7.
Алексей (27.12.2009 / 16:00)
ramzes (Сегодня / 14:49)
На кой фиг еще одна таблица нужна?
В профиле +2 поля.
rating, lastvote.
if($user['lastvote'] < (time()-(3600*24))){
голосуем. rating = rating+1 }else{
еще рано. }
ни каких лишних запросов, ни каких лишних таблиц. Эффект то же.
надо продумывать все, вдруг потом еще захочеться сделать комментарий к каждому голосу за пользователя [+][-] , ну и множество других вещей.
8.
ramzes (27.12.2009 / 16:52)
Гм я как то не внимательно прочитал.. 'за одного раз в сутки' тогда и правда таблица нужна писать всех кому поставил и время.
сорри за ошибку
9.
Игорь (27.12.2009 / 16:58)
Да, я уже определился,и реализовал. Зделал еще одну таблицу. Всем спасибо
URL:
https://visavi.net/topics/4231