如何在MySQL数据库中存储评级

时间:2012-06-26 19:35:11

标签: php mysql

  

可能重复:
  Rating System in PHP and MySQL

我正在制作一个等级从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的数据库中,他们将无法评级,否则他们可以。

我正在寻找建议,如果在我开始任何编码之前这是一个安全,干净的方法。谢谢。

1 个答案:

答案 0 :(得分:2)

如果您为itemID - userID组合添加唯一键,则这将是存储该信息的保存方法。

您可以添加像这样的唯一键

ALTER TABLE your_table
ADD UNIQUE (itemID, userID);
  

UNIQUE约束唯一标识数据库表中的每条记录。 UNIQUE和PRIMARY KEY约束都为一列或一组列的唯一性提供了保证。