我应该如何为我的Android应用构建/设计评级系统?


How should I build/design a ratings system for my Android application?

我正在构建一个移动Android应用程序,用户可以在其中找到他们周围最近的位置,然后在查看这些地方时,他们可以看到细节并对其进行评分。除此之外,他们还可以在地图上添加新的地方。我希望能够尽可能地降低人们添加虚假点的几率,所以这就是为什么我想要实现一个评级系统,这是虚假点的另一层安全保障。

我不确定我应该如何设计我的数据库表。现在我只有:

Location: name, address, type, terrain, difficulty, lng, lat, rating.

额定值列只允许取值:1,2,3,4,5。

我还需要什么来保存收视率的总和?

表设计完成后。我想知道最合适的方法来计算平均评分,然后能够根据他们的评分删除他们。问题是,如果一个广告有1票,评分为1,100%是负面的,那么当一个广告有100票,其中90票是1票,10票是5票时,它就会被认为是糟糕的。当然,第一个应该被认为更糟糕,然后删除。我该如何应对呢?

我想说,制作一个包含位置id和提交评论的用户id的外键的单独表将是有用的(当然还有他们的评级)。这样,用户可以在以后的时间编辑他们的评论。

有很多种方法。更复杂的趋势监测系统可以缓冲投票,并查看过去一天、一小时、一分钟等的汇率。

然而,对于一个简单的系统,您可以查看总票数和平均评分。你可能不关心和(你可以从其他两个中得到它)。

更新评级:

average = ((average*total)+new)/(sum+1);
total ++;

当你考虑删除它们时,你会想要为最小投票数(总数)设置一个阈值,然后根据平均评分删除。1张差票可能还不够,你认为有多少张,取决于你的使用水平。

其他答案:PHP/MySQL - "Top rate "算法