我目前正在设计电子商务网络应用程序数据库。
我需要增加用另一个具有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
答案 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
}表。