我想知道您对如何为产品评论建模投票的想法。如果您已完成任何在线购物,您可能已经注意到许多产品评论都有"x people out of x found this review helpful."
假设许多客户会审核许多产品,并且许多客户会对许多评论进行投票,那么最好有一个包含totalVotes和usefulVotes列的表格:
customerReviews(id, customerId, productId, reviewText, totalVotes, helpfulVotes)
或者有两个表,第二个分别存储投票:
customerReviews(id, customerId, productId, reviewText)
reviewVotes(id, reviewId, customerId, helpfull) (helpfull would be a 0,1 value)
你的想法很受赞赏。这里的另一个假设是,投票客户必须是会员。
答案 0 :(得分:2)
我真的认为,对于大多数常见用例,您不需要坚持投票进行审核,也不需要投票。出于可用性原因,最多需要将其保存在会话变量中,让用户在有限的时间段内更改其投票。
通过这种方式,您只需要为每次审核保留一个计数,而不是每个客户:
review(id, productId, authorId, text, votes, helpfulCount)
这种方式不需要聚合,求和,计算或任何其他可能代价高昂的操作,事情很简单。简单就是好。
答案 1 :(得分:1)
为了简单起见,我会把它们放在同一张桌子上。我之前也尝试过这个,这就是我如何去做的。