我想知道您对如何为产品评论建模投票的想法。如果您进行过任何网上购物,您可能会注意到许多产品评论都有“x 人中的 x 人发现此评论有帮助。”
假设许多客户会评论许多产品,并且许多客户会对许多评论进行投票,那么最好有一张包含 TotalVotes 和 HelpfulVotes 列的表,如下所示:
customerReviews(id, customerId, productId, reviewText, totalVotes, helpfulVotes)
或者有两个表,第二个表单独存储投票,如下所示:
customerReviews(id, customerId, productId, reviewText)
reviewVotes(id, reviewId, customerId, helpfull) (helpfull would be a 0,1 value)
非常感谢您的想法。这里的另一个假设是,要投票的客户必须是成员(member)。
最佳答案
我确实认为,对于大多数常见的用例,您不需要坚持谁投票支持评论,也不需要坚持投票哪些特定的票。出于可用性原因,您最多需要将其保留在 session 变量中,让用户在有限的时间内更改其投票。
这样,您只需保留每个评论的计数,而不是每个客户的计数:
review(id, productId, authorId, text, votes, helpfulCount)
这样就不需要聚合、求和、计数或任何其他可能成本高昂的操作,而且事情很简单。简单就是好的。
关于database-design - 产品评论投票如何在数据库中建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928976/