Алгоритм системы рейтинга юзеров

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)
Делай еще одну таблицу. Тогда сможешь посчитать количество плюсов и минусовsmile

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)
Гм я как то не внимательно прочитал.. 'за одного раз в сутки' тогда и правда таблица нужна писать всех кому поставил и время.
сорри за ошибкуsmile

9. Игорь (27.12.2009 / 16:58)
Да, я уже определился,и реализовал. Зделал еще одну таблицу. Всем спасибоsmile

URL: https://visavi.net/topics/4231