如何存储评级系统的ID


How to store ids for a rating system?

所有

我需要一个关于如何将评分器的id存储在mysql数据库中以在php脚本中使用的快速帮助。喜欢我有一个php星级评分脚本,我希望当有人对个人资料进行评分时,他/她的id应该存储在数据库中,以检查他们是否已经投票。我如何将它与其他评分者的档案id一起存储在一列中。数据库结构如下

    user_id | rated_value | rated_count | raters_id

这里user_id是正在评级的配置文件的idrated_value是所有选票的总价值rated_count是特定配置文件的总费率数。raters_id是对该简档进行评级的所有评级者的id。

现在我想检查概要文件id是否已经用php对概要文件进行了评级。我听说过以逗号分隔的id列表,但这是个好主意吗。如果我使用逗号分隔的列表,如果id已经被评为概要文件,我如何在php中进行检查。

谢谢你的帮助。

您只需要3列:

user_id | rated_value | rater_id

你必须在这里存储每一个评分,这样你甚至可以告诉用户他过去评了多少颗星。

要获得user_id = 1的总评级,请使用MySQL中的聚合函数和分组:

SELECT 
    AVG(rated_value) as average_rating, 
    COUNT(*) AS number_of_votes 
FROM 
    user_rating 
WHERE
    user_id = 1
GROUP BY
    user_id

要检查rater_id = 3是否评级为user_id = 1,请使用简单查询

SELECT rated_value FROM user_rating WHERE user_id = 1 AND rater_id = 3

并检查它是否返回任何结果