gpt4 book ai didi

php - mySQL 数据库 - 存储多标准评级

转载 作者:行者123 更新时间:2023-11-29 00:24:22 24 4
gpt4 key购买 nike

我一直在搜索和阅读有关评级系统的大量内容,但找不到解决我想要实现的目标的方法...

我有一个网站,用户登录后可以提交产品。现在我希望其他用户能够根据 3 个不同的标准对这些产品进行评分。我正在使用 php 和 mySQL 数据库来存储所有工作良好的信息,我只是不确定现在如何合并评级。

目前我有一个 PRODUCTS 数据库,它根据类别保存各种表格。这是一个表格示例:

TOASTERS
---
ID (auto-incrementing)
Brand
Set
Number
Name
Edition
Image (stores the location of the image the user uploads)

然后,任何用户都可以根据 3 个标准(质量、价格、美观)对表中的该行进行评分(满分 10 分)。每个标准的用户平均值显示在每个产品页面上,但我想存储每个用户的个人评分,以便我可以在他们的个人资料页面上显示他们评分的简短历史记录。或者在主页上实时提供最新用户评分。

我想做的很像 awwwwards.com . (查看页面右下角以查看我正在谈论的直播)

提前致谢!

最佳答案

我认为您应该使用单个 PRODUCTS 表或至少创建 PRODUCTS 表并模拟它与类别表之间的继承。

如果每个类别都有一些特定的属性,则为每个类别都有一个表会带来一些优势,但这可能导致需要编写单独的代码来处理每个表。或者,您可以使用两个表“垂直”存储所有自定义属性:PROPERTIES(propertyID,PropertyName)PROPVALUES(productID,propertyID,PropertyValue)

如果选择多表模拟继承,可以这样实现:

PRODUCTS
---
ID (auto-incrementing)
Brand
Set
Number
Name
Edition
Image
VoteCount <+
SumQuality +-updated by trigger
SumPrice |
SumAesthetic <+

TOASTERS
---
productID (PK and FK to PRODUCTS)
(toaster specific fields go here, if any)

然后您将能够创建表 VOTES,引用表 PRODUCTS

VOTES
---
productID (FK to PRODUCTS)
userID (FK to USERS)
Quality
Price
Aesthetic
VoteDateTime

如果整体产品评级确实比投票历史查询更频繁,作为优化,您可以将字段 VoteCount、AvgQuality、AvgPrice、AvgAesthetic 添加到 PRODUCTS 表,如 srdjans已经假设。您可以通过在表 VOTES 上触发或在 PHP 代码中手动更新此额外字段。

关于php - mySQL 数据库 - 存储多标准评级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com