Формула рейтинговой системы смайлов

Я использую систему рейтинга смайликов на своем веб-сайте: Нравится (улыбающееся лицо), Не нравится (грустное лицо) и Нейтрально (прямое лицо).

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

Пусть х=количество лайков-количество дизлайков

If x<0, then rating = dislike
If x>0 & x> number of apathetic, then rating = like
If x>0 & x<number of apathetic, then rating = apathetic

Как я могу рассчитать средний рейтинг/балл в такой рейтинговой системе?

Примечание. Мне нужна оценка, чтобы отсортировать материалы с самым высоким рейтингом вверху и с самым низким рейтингом внизу.


person Jad    schedule 11.08.2014    source источник


Ответы (1)


Я не уверен, используете ли вы объектно-ориентированное кодирование, но в любом случае, если у вас есть «что-то» для голосования, я предполагаю, что у вас также есть другая информация об этом «чем-то», которая хранится либо в базе данных, либо в каком-то другом месте. другая среда.

При этом вы можете просто сохранить голоса в виде целого числа с объектом, за который проголосовали.

Пример. У вас есть сайт или блог, где пользователи могут голосовать за сообщения, сделанные другими пользователями.

Каждое сообщение будет храниться с такой информацией, как:

  • Кто это опубликовал
  • Дата
  • Подробности поста

С помощью этой информации вы также можете хранить голоса за и против.

Или, если вы хотите пойти дальше, вы можете создать объект голосования и отношение к сообщению, если вы хотите хранить больше, чем просто количество голосов «за» и «против» (дополнительную информацию, например, кто проголосовал или дату, когда они проголосовали, если, например, вы не хотел, чтобы люди голосовали за одно и то же дважды).

Еще кое-что, о чем следует помнить, всегда отслеживайте все голоса «за» и «против» и используйте логику для определения отображения. Не просто держите одно целое число и добавляйте или вычитайте его. Пост с 1 плюсом и 1 минусом = 0 баллов — это не то же самое, что пост с 1000 плюсов и 1000 минусов = 0 баллов, поскольку он набрал 2000 просмотров, что само по себе должно что-то объяснять.

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

  • Создайте дополнительную таблицу и назовите ее как-то вроде голосования
  • Храните информацию, такую ​​как избиратель, дата, тип голосования
  • Свяжите таблицу отношением «многие ко многим» между пользователями и голосами.
  • Каждый раз, когда проводится голосование, обновляйте таблицу
  • Рассчитайте разницу между взлетами и падениями и отобразите правильные смайлики на своем интерфейсе или отобразите их в виде числа

Способы "у меня дрянной клиент", "я ленивый" или "я пишу код на 2 часа сна":

  • Создайте одно целочисленное поле с объектом, за который голосуют.
  • Увеличивайте и уменьшайте это по мере того, как пользователи голосуют

Надеюсь, я понял вопрос, и это помогает!

person Mia    schedule 11.08.2014