mysql-如何在数据库设计中实施星级评分系统?
作者:互联网
我目前正在制作一个Android应用,希望允许用户对其他用户发布的帖子进行评分.
这是我目前的设计,但是,我会在单独的表格中包含“评分”还是在“媒体上传”表格中包含?
如果它是一个单独的表,会是这样吗?
评分表:(评分,PostID,Rating_Count,Average_Rating)
如果我的设计有其他问题,也将不胜感激!
解决方法:
这全都取决于您希望收视率如何运作,谁会上投票还是下票,是否跟踪每个投票者以防止同一个人获得多个投票等.
这就是我要做的事情:为每个投票添加一个唯一的数字(长?)RatingID字段,将PostID字段链接到Comments表,添加一个限制为0到5(或任何范围)范围内的Rating(整数)字段,然后从所有投票中计算平均值(删除Rating_Count和Average_Rating字段).您可以定义一个视图以计算每个帖子的平均评分,以用于您的例程,以确定如何在帖子旁边显示它.
另外,我将为每个用户使用一个ID,而不要使用其名称.
所以我的桌子看起来像这样:
RatingID,PostID,UserID,评分
同样,为了防止用户多次投票,该表不允许同一PostID和UserID包含多个条目.
标签:erd,rating-system,mysql,database 来源: https://codeday.me/bug/20191118/2031660.html