根据用户点击对商品进行评级

时间:2009-08-03 08:51:33

标签: c# sql database

我正在尝试在酒店搜索网站上制定评级策略。评分基于查看不同酒店的用户点击次数。我正在尝试为每次点击指定点数。

假设我在酒店表中有一个POINTS列,它增加了每个酒店的点击次数,我面临的问题是假设我在第1周引入了hotel1然后它在第2周获得了相当多的积分但是如果我在第2周引入了一家新酒店2,虽然这家新酒店正在竞争性地增加了它们不能轻易达到的酒店1个becoz,因为他们被引入了几周。

我想通过引入DAYS栏来解决上述问题的方法,然后我可以按天数划分每个酒店的POINTS,以便我可以对每个酒店有明确的评级。

在数据库表中添加新酒店后,我需要你的帮助,告诉我如何在DAYS栏中获得每一天的数量。

4 个答案:

答案 0 :(得分:2)

拥有CreateDate列可能会更好,然后在客户端代码中执行以下操作:

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

这也会减少对数据库的更新,因为只需要在create上设置日期。

答案 1 :(得分:2)

我不打算进入你正在做的事情的统计理论,但是让我说明我认为你的统计数据会产生误导。

尽管如此,为了实现你想要实现的目标,我会做@Andy刚刚说过你应该做的事情。 (打败我!)

答案 2 :(得分:1)

据我了解,你要求人们对酒店“投票”,但唯一可能的选票是“是”和“不投票”。

这是否在统计上有效取决于人们何时被要求投票。如果每次有人访问酒店,你问他是否对他的住宿感到满意,并且人们一直这样做,我想这通常是有效的。但是,如果评分系统是这样的,用户不认为需要重新投票他们已经投票的酒店,那么列表上的酒店将会看到他们的评级倾向于下降。如果它达到了每个曾经访问过酒店的用户已经投票(或没有)的情况,并且没有人看到需要再次投票,那么酒店的分数会逐渐下降。

此外,这个系统会偏向于大酒店。如果A酒店有500间客房,而B酒店有10间客房,B酒店很难获得与A酒店一样多的选票。

我认为你最好让人们按照一定的比例给酒店评分 - 1到5星或其他 - 然后提出平均分数。可能与评级的数量一起,因为人们可能会发现如果只有一个评级并且它是最高评级,那么可能是所有者对他自己的酒店进行评级。

答案 3 :(得分:0)

计算代码中的天数的另一种方法是使用数据库中的计算列(假设sql标记表示sql server)。正如其他海报所说,为酒店添加一个CreateDate列,然后添加一个计算列以返回日期差异。