Оценка товаров на основе клика пользователя - PullRequest
0 голосов
/ 03 августа 2009

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

Предположим, у меня есть столбец POINTS в таблице отелей, который увеличивается на количество кликов в каждом отеле. Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть гостиница1, которая была представлена ​​на неделе1, тогда она набирает значительное количество очков на неделе2, но если я представляю новый отель 2 на неделе 2, хотя этот новый отель конкурентно увеличивает количество баллов, которые он не может легко достичь, из-за разницы в отелях 1 в неделях, в которые они были введены.

Я подумал, как решить вышеуказанную проблему, введя столбец ДНЕЙ, после чего я могу разделить ТОЧКИ каждого ОТЕЛЯ на количество дней, чтобы иметь четкие оценки для каждого отеля.

Мне нужна ваша помощь о том, как я получаю номер каждого проходящего дня в столбце ДНИ после добавления нового отеля в таблицу базы данных.

Ответы [ 4 ]

2 голосов
/ 03 августа 2009

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

Как бы то ни было, просто для того, чтобы добиться того, чего, как вы говорите, вы хотите достичь, я бы сделал то, что @Анди только что сказал, что вы должны сделать. (Ударь меня к этому!)

2 голосов
/ 03 августа 2009

Вероятно, было бы лучше иметь столбец CreateDate, а затем в коде на стороне клиента сделать что-то вроде:

int days = Date.Now.Subtract(hotel.CreateDate).Days;

Это также приведет к меньшему количеству обновлений в вашей базе данных, так как дату нужно устанавливать только при создании.

1 голос
/ 03 августа 2009

Насколько я понимаю, вы просите людей «проголосовать» за отели, но единственно возможными являются «да» и «нет голосования».

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

Кроме того, эта система будет смещена в пользу больших отелей. Если в отеле A 500 номеров, а в отеле B 10 номеров, было бы очень сложно, чтобы отель B набрал столько же голосов, сколько отель A.

Я думаю, вам лучше попросить людей оценить гостиницу по какой-то шкале - от 1 до 5 звезд или что-то еще, а затем представить средний балл. Вероятно, наряду с количеством оценок, поскольку люди могут выяснить, что, если существует только один рейтинг, и он является максимально возможным, это может быть рейтинг владельца своего отеля.

0 голосов
/ 03 августа 2009

Альтернативой для вычисления дней в коде было бы использование вычисляемого столбца в базе данных (при условии, что под тегом sql подразумевается сервер sql). Как говорили другие авторы, добавьте столбец CreateDate для отеля, а затем добавьте вычисляемый столбец, чтобы получить разницу в дате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...