【问题标题】:How to store ratings in MySQL database [duplicate]如何在MySQL数据库中存储评级[重复]
【发布时间】:2012-06-27 03:46:57
【问题描述】:

可能重复:
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 的数据库中,他们将无法评分,否则他们可以。

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

【问题讨论】:

    标签: php mysql


    【解决方案1】:

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

    您可以像这样添加唯一键

    ALTER TABLE your_table
    ADD UNIQUE (itemID, userID);
    

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

    【讨论】:

    • 我编辑了,现在你觉得好看吗?
    • 不,不要添加其他列。告诉 SQL 引擎 itemIDuserID 只能以一种组合插入。如果你定义了一个唯一键并且想插入 (1,2) 两次,那么 SQL 不会让你这样做。
    • 好的,你的意思是检查那个组合,如果它存在不允许另一个速率/条目,否则如果它不存在那么继续并继续?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2018-11-11
    • 2011-12-25
    相关资源
    最近更新 更多