[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рейтинг новостей и комментарий
Arh
Всем привет и с наступающими. wink.gif

Есть у меня не большой проект, в котором нет аякса, которого я никогда не знал и не понимал, так как еще не изучил javascript, но пришло время добавлять систему рейтинга и прочие плюшки, для реализации которых AJAX очень пригодится, и вот я начал курить в эту сторону.

Собственно меня интересуют два вопроса:
1) Как лучше сделать рейтинг пользователя, публикаций, комментарий (в смысле структуры)
2) Вид рейтинга
3) Как избежать стадного повышения или понижения рейтинга.

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

Получается есть таблица с рейтингом комментарий, вида (user_id, value) кто оценил и как (1 либо -1 или true либо false, думаю 1,-1 лучше, так как удобнее складывать с тем рейтингом что уже есть типа set `rating` = `rating`+$rating). Так можно будет проверять, ставил ли пользователь рейтинг к этой новости или еще нет.

Вроде всё просто, но будет куча записей, если взять 1000 новостей в которой по 100 комментов, которые 100 раз лайкнули или дизлайкнули, это нормально хранить всё это в базе?
Есть конечно мысли запрещать выставлять рейтинг публикациям которые старше например 30 дней, а так же удалять старые оценки, то есть у самой новости рейтинг останится, но история кто и что ставил очистится. Хотя взять тот же контакт, там лайки вечно храняться.

Пояснение второго вопроса (ваши мысли):
Есть рейтинг как оценка (3 из 10), а есть просто сумма плюсов и минусов.
В принципе, храня в базе плюсы и минусы, можно делать оба вида рейтинга, один выводит сумму, а тот что с оценкой считает рейтинг опираясь на максимальное значение, то есть пользователь с максимальным рейтингом имеет значение 100 (сумму + и -) а другой пользователь имеет 20, то по 10 бальной шкале это будет 2 из 10, подсчитать не сложно.

Пояснение третьего вопроса:
Изучал поведение пользователей относительно рейтинга (в контакте, на хабре, на джойреакторе итд) в том числе и свою поведение при разных настроениях.

В рейтинге кинопоиска есть такая проблема, смотришь на оценку, она не очень позитивная допустим 5 или 6 из 10, смотришь фильм и сам оцениваешь его, опираясь на оценку кинопоиска поначалу, правда под конец фильма иногда недоумеваешь, почему такой хороший фильм с такой низкой оценкой или наоборот. Я знаю людей которые принципиально не смотрят фильмы у которых оценка хотя бы меньше 7.5, и сидят, мучаются смотря фильмы с высокой оценкой, хотя им даже жанр не нравится.

В контакте нельзя поставить дизлайк, а иногда очень хочется. Но это так же плюс, как и минус, так как стадный инстинк тут не сработает.

А вот на джойреактор работает стадный инстинкт, хотя там все поголовно говорят что они не школьники, умначают и всё такое. Часто встречал комментарии, которые в минусе, но человек не сказал ничего плохого или даже наоборот что то верно подметил, однако его заминусовали. А бывают такие что написал полную ахинею и он в плюсе. Мне стало интересно почему так проиходит, поначалу думал "ну ладно, тут школьники, лжетцы и девственники, чё с них взять" biggrin.gif но судя по опросам, большая аудитория того портала от 25 до 28 лет.
Поразмышлял и сделал предположение в чем причина неправильных оценок.
Оказалось есть несколько причин.
1) Минусуют посты. Даже те посты, которые нейтральные, часто бывают в минусе, ну тут всё просто, пользователь скролит сайт, видит картинку которая ему не интересна и ставит минус, просто потому что не интересно. Такую проблему можно решить краткой и полной версией новости, в краткой версии пользователь должен видеть рейтинг, но не должен иметь возможность его менять, если пользователю не интересно или это его не задело, он просто пролистает дальше, если интересно или вызывает отрицательные чувства, пользователь зайдёт в полную версию новости и там уже поставит рейтинг.
2) Минусуют комменты, потому что не поняли смысла. Пользователь читает комментарий, не понимает тонкий юмор или профессиональный сленг и ставит дизлайк, хотя коммент может быть реально отличным если понимать что там пишут.
3) Минусуют потому что так делают все. Тут есть несколько вариантов, пользователь прочитал коммент, не понял смысла, увидел что он в плюсе и тоже поставил плюс, что бы не казаться тупым даже перед самим собой (такой самообман), либо увидил что все минусуют и тоже ставит минус даже если не понимает почему такой хороший коммент в минусе (начинает искать аргументы почему этот комментарий плох)

Решил я это всё дело проверить. Как раз начал изучать аякс и курл по мере возможности.
Написал я лайкер/дизлайкер комментарий на джойреактор. Зарегистрировал кучу аккаунтов (штук 30) и поехал веселиться laugh.gif

Дело было так:
Нахожу свежую новость с комментарием который заминусовали, поднимаю ему рейтинг, сохраняю вкладку, захожу через минут 30 или час, с мыслями что комментарий который был -1.0, а я его сделал +2.0 всё равно будет заминусован, и что я вижу, вижу я рейтинг +7.0

Нахожу реально адекватный комментарий который в плюсе, допустим тот же +1.0, минусую до -2.0, захожу через час, вижу что этот коммент заминусован до гдето -11.0 (примерно, цифры не помню, но смысл понятен)
На что ниже люди спрашивают "за что вы его заминусовали?" и на моё удивление находится куча бредовых аргументов почему этот коммент в минусе.

Даже доходило до такого обсурда:
Пользователь А написал комент с картинкой пони
Пользователь Б написал к этому комменту "очередной заминусованный пони*б"

Рейтинга у них еще нет, свежие коменты, я пользователю Б снижаю рейтинг, (вроде -2,7 получилось) а тому, что с пони плюсую на теже 2,7.
И поначалу пони плюсовали, хотя там не любят пони =), а пользователя Б минусовали, пока кто то ниже не подметил это.

Впринципе с новостями всё понятно, просто убрать возможность ставить рейтинг при просмотре главной страницы.
А вот с комментариями уже сложней, тут я затрядняюсь придумать решение.

Для тех кому не лень и любопытно, лайкер комментов он в виде модуля для моей cms о которой тут рано еще говорить типа "оцените"
Скачать можно по ссылкам из группы http://vk.com/arhcms
Установка через файл install.php
Далее в админке в разделе модулей установить модуль "joyliker"
Потом включить его и дать себе доступ на его запуск, как на картинке ниже.
Далее вводите номер новости и комментария и ждёте секунд 30, с курлом я знаком только пару дней =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.