好吧,我知道这不是一个独特的概念。不过,我发现的例子和教程并没有涵盖太多,它们都是关于这是你所做的,上传和完成。在很多方面都可以。但是我想从头开始。
我所拥有的是一个对产品进行投票的用户,我正试图找出如何将这些表正确地组合在一起以支持这一点。所以我有我的用户表,我的产品表,我想从中创建两个新表。一个是每个产品的投票,它将有一个唯一的ID每个产品投票排名,这样我就可以有一个第二个表,将评论与投票一起。我可以在大桌子上为2的组合做,是的。。但随着谈判桌的扩大,我预见到了未来的问题。所以我宁愿两个分开。我想做的另一件事是关注10个不同的排名选择。1/2为最低,5为最高,总票数超过所有选票。因此,构建一个表的最佳方法是:至少为每个产品的额定存储量构建一个表。
撇开这一点,把数字放进去最好的方法是什么?小数?整数?我如何计算五星的概念。

最佳答案

三张桌子(我想你已经有两张了):

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

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

10-05 20:29