首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mysql 5星级评级结构

php mysql 5星级评级结构
EN

Stack Overflow用户
提问于 2012-01-31 08:26:16
回答 1查看 1.5K关注 0票数 1

好吧,我知道这不是一个独特的概念。然而,我发现的例子和教程并没有涵盖太多,它们都是关于你所做的,上传它和完成的。这在很大程度上是可以的。然而,我想从头开始构建一个。

我有一个用户谁是投票的产品,我正在试图弄清楚如何把表正确地放在一起,以支持这一点。所以我有我的users表,我的product表,并且我想要创建2个新的表。其中一个实际上是每个产品的投票,这将有一个唯一的ID,每个产品的投票排名,所以我可以有第二个表,将有评论以及投票。我可以在大桌子上创建这两个组合,是的..但随着表格的增加,我预见到了这一点的问题。所以我宁愿把这两个分开。我想做的另一件事是跟踪10个不同的排名选择。1/2是最低的5是最高的总票数。那么,构建至少每个产品的评级存储的表的最佳方式是什么呢?

抛开这一点,最好的数字输入方式是什么?小数?整数?我该如何计算五星级概念。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 08:44:52

三个表(我假设您已经有了其中两个):

代码语言:javascript
复制
users (id, etc...)
products (id, etc...)

votes (userId, productId, rating, comments)

rating可以是SMALLINT类型。这给出了一个0-255的范围,您可以将其视为用户的分数“乘以10”。例如:4星= 40,0.5星= 5。除非你预见到用户想要给3.1415颗星,否则这应该是足够的,再加上比float列更高效的内存。

然后,当你想要找出平均分数时:

代码语言:javascript
复制
SELECT AVG(rating) FROM votes WHERE productId = xxx

我不认为您应该对这样的表结构有任何特别的问题。如果你是超级的偏执狂,那么是的,你可以为评论创建一个单独的表,然而,这将是教科书上对过早优化的定义。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9072814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档