产品评论投票如何在数据库中建模?
问题描述:
我想知道您如何为投票产品评论建模。如果你已经做了任何网上购物,你可能已经注意到,许多产品评论有一个"x people out of x found this review helpful."
产品评论投票如何在数据库中建模?
假设许多客户将审查许多产品,许多客户将对许多评论投票,是最好有一个表总投票和有帮助的话列,这样的:
customerReviews(id, customerId, productId, reviewText, totalVotes, helpfulVotes)
还是有两个表,分别在第二存储票,因为这样的:
customerReviews(id, customerId, productId, reviewText)
reviewVotes(id, reviewId, customerId, helpfull) (helpfull would be a 0,1 value)
你的想法是值得赞赏的。这里的另一个假设是投票客户必须是会员。
答
我真的认为,对于大多数常见用例,您不需要坚持谁投票审查,也没有什么特别投票。出于可用性的原因,您至多需要将其保留在会话变量中,让用户在有限的时间段内更改其投票。
这样,你只需要保持每复习计数,而不是按每个客户:
review(id, productId, authorId, text, votes, helpfulCount)
这样就没有必要聚集,求和,计数或其他任何潜在的昂贵的操作,和东西简单。简单很好。
答
我会把它们都放在同一张桌子上,以使事情变得简单。我之前也试过这个,那就是我如何去做的。