我目前正在制作一个 Android 应用程序,我希望允许用户对其他用户发布的帖子进行评分。
这是我当前的设计,但是,我会将评级作为单独的表包含还是包含在媒体上传表中?
如果它是一个单独的表,它会是这样的吗?
评分表:(Rating、PostID、Rating_Count、Average_Rating)
如果我的设计还有什么问题,那也将不胜感激!
最佳答案
这完全取决于您希望评级如何运作,谁可以投赞成票或反对票,您是否跟踪每个投票的人以防止同一个人投多票,等等。
这就是我要做的:为每次投票添加一个唯一的数字(长?)RatingID
字段,将 PostID
字段链接到 Comments 表,添加一个 Rating
(整数)字段,该字段的值限制为 0 到 5(或任何范围)你喜欢),然后计算所有投票的平均值(删除 Rating_Count
和 Average_Rating
字段)。您可以定义一个 View 来计算每个帖子的平均评分,用于您的例程来确定如何在帖子旁边显示它。
另外,我会为每个用户使用一个 ID,而不是使用他们的名字。
所以我的表看起来像这样:RatingID, PostID, UserID, Rating
此外,为了防止用户多次投票,该表不允许同一 PostID
和 UserID
有多个条目。
关于mysql - 我将如何在我的数据库设计中实现星级评分系统?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36206180/