好吧,我知道这不是一个独特的概念。然而,我发现的例子和教程并没有涵盖太多,它们都是关于你所做的,上传它和完成的。这在很大程度上是可以的。然而,我想从头开始构建一个。
我有一个用户谁是投票的产品,我正在试图弄清楚如何把表正确地放在一起,以支持这一点。所以我有我的users表,我的product表,并且我想要创建2个新的表。其中一个实际上是每个产品的投票,这将有一个唯一的ID,每个产品的投票排名,所以我可以有第二个表,将有评论以及投票。我可以在大桌子上创建这两个组合,是的..但随着表格的增加,我预见到了这一点的问题。所以我宁愿把这两个分开。我想做的另一件事是跟踪10个不同的排名选择。1/2是最低的5是最高的总票数。那么,构建至少每个产品的评级存储的表的最佳方式是什么呢?
抛开这一点,最好的数字输入方式是什么?小数?整数?我该如何计算五星级概念。
发布于 2012-01-31 08:44:52
三个表(我假设您已经有了其中两个):
users (id, etc...)
products (id, etc...)
votes (userId, productId, rating, comments)rating可以是SMALLINT类型。这给出了一个0-255的范围,您可以将其视为用户的分数“乘以10”。例如:4星= 40,0.5星= 5。除非你预见到用户想要给3.1415颗星,否则这应该是足够的,再加上比float列更高效的内存。
然后,当你想要找出平均分数时:
SELECT AVG(rating) FROM votes WHERE productId = xxx我不认为您应该对这样的表结构有任何特别的问题。如果你是超级的偏执狂,那么是的,你可以为评论创建一个单独的表,然而,这将是教科书上对过早优化的定义。
https://stackoverflow.com/questions/9072814
复制相似问题