【问题标题】:mysql - user item ratings, 1 rating per user, updateable - table structure?mysql - 用户项目评级,每个用户 1 个评级,可更新 - 表结构?
【发布时间】:2009-10-14 23:45:00
【问题描述】:

我想让我的用户能够从 1 到 5 对网站上的每个项目进行评分。他们还必须能够返回并根据需要修改对每个项目的评分。最后,该项目的页面将显示所有用户在查看时的平均评分。

至于 PHP,我想我可以应付。我正在努力设想一组逻辑表来处理上述问题?

我只是想你的标准:

ID | ITEM## | USERID | RATING

表格设计,但感觉返回并不断检查用户之前是否对给定项目进行了评分,并在每次查看该项目时返回该结果,这会导致脚本集相当缓慢......尤其是项目和用户数会随着时间的推移而增长。

对于这种情况,有没有人有更好的表格布局想法?我们正在查看 1500 多个项目,并在未来定期添加,所以每个项目一个表有点过分,不是吗?

谢谢!

【问题讨论】:

    标签: sql mysql database-design data-modeling


    【解决方案1】:

    这是最好的方法。它被称为多对多关系。您有许多用户和许多项目。一个用户可以评价很多项目,一个项目可以被多个用户评价。

    不要在您建议的表中使用 ID 字段,而是将键放在 ITEM 和 USERID 上。这样,用户只能对一个项目进行一次评分。如果您尝试对它进行两次评分,您将收到错误消息。同时对这两个字段进行索引以加快表格的搜索速度。

    【讨论】:

      【解决方案2】:

      我会说在 ITEM 和 USERID 上放置一个唯一索引并使用“REPLACE INTO”更新行应该可以。我强烈建议您为每个项目制作一张表格,以节省一些负担。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-24
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        相关资源
        最近更新 更多