如何存储评级系统的ID?

时间:2012-03-18 09:18:25

标签: php mysql store rating

所有

我需要快速帮助如何在MySQL数据库中存储rater的id以在php脚本中使用它。喜欢 我有一个php星级评分脚本,我希望当有人评价个人资料时,他/她的id应该存储在数据库中,以检查他们是否已经投票。如何将其存储在具有其他评估者配置文件ID的单个列中。数据库结构就像这样

    user_id | rated_value | rated_count | raters_id

此处user_id是正在评级的个人资料的ID rated_value是所有投票的总价值 rated_count是对特定配置文件评分的总费率数。 和raters_id是评定该个人资料的所有评估者的身份。

现在我想检查配置文件ID是否已经使用php评了配置文件。我听说过逗号分隔的ID列表,但这是一个好主意。如果我使用以逗号分隔的列表,如果id已经被评为个人资料,我该如何检查php。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您只需要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

并检查是否返回任何结果