MySQL数据库设计用户评级

时间:2014-12-16 01:22:50

标签: mysql sql database-design

我目前正在设计电子商务网络应用程序数据库。

我需要增加用另一个具有5星级费率系统的用户评价用户的可能性(例如亚马逊)。我想我必须再向我的数据库添加一个表(例如USER_RATING)。但是我的USER表使用什么样的关系?

我的USER表格包含以下字段:

user_id INT <- PK
first_name VARCHAR(35)
last_name VARCHAR(35)
email VARCHAR(254)

USER_RATING看起来像这样:

value FLOAT
time TIMESTAMP

1 个答案:

答案 0 :(得分:0)

当一个用户评价另一个用户以防止重复时,你需要记录,所以我建议如下:

CREATE TABLE user_rating (
    rated_user_id INTEGER NOT NULL,
    rater_user_id INTEGER NOT NULL,
    value FLOAT,
    time TIMESTAMP,
    PRIMARY KEY (rated_user_id, rater_user_id));

rater_user_id上创建一个外键。

根据您的应用程序和您期望的评级数量,可能值得对设计进行非规范化处理,并在{{1}上记录current_rating(即整体)和number_of_ratings }表。