我正在制作一个等级从1到10的评级系统。我希望能够跟踪所有用户评级,以及他们是否已经评定了该特定项目。
注意: - 我有一个登录,所以每个用户在数据库中都有一个唯一的ID。 - 每个特定项目也有唯一的ID。
我的问题是:我应该如何以最佳方式准确地将这些信息存储在数据库中。
我正在考虑这样做:
Unique_Key | Item_ID | User_ID | User_rating
1 1 1 (1-10)
2 1 2 (1-10)
3 2 2 (1-10)
4 3 1 (1-10)
5 4 1 (1-10)
因此,如果用户评级的Item_ID已经在他们的User_ID的数据库中,他们将无法评级,否则他们可以。
我正在寻找建议,如果在我开始任何编码之前这是一个安全,干净的方法。谢谢。
答案 0 :(得分:2)
如果您为itemID
- userID
组合添加唯一键,则这将是存储该信息的保存方法。
您可以添加像这样的唯一键
ALTER TABLE your_table
ADD UNIQUE (itemID, userID);
UNIQUE约束唯一标识数据库表中的每条记录。 UNIQUE和PRIMARY KEY约束都为一列或一组列的唯一性提供了保证。