2010-10-13 41 views
2

我想知道您如何爲投票產品評論建模。如果你已經做了任何網上購物,你可能已經注意到,許多產品評論有一個"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) 

你的想法是值得讚賞的。這裏的另一個假設是投票客戶必須是會員。

回答

2

我真的認爲,對於大多數常見用例,您不需要堅持誰投票審查,也沒有什麼特別投票。出於可用性的原因,您至多需要將其保留在會話變量中,讓用戶在有限的時間段內更改其投票。

這樣,你只需要保持每複習計數,而不是按每個客戶:

review(id, productId, authorId, text, votes, helpfulCount) 

這樣就沒有必要聚集,求和,計數或其他任何潛在的昂貴的操作,和東西簡單。簡單很好。

1

我會把它們都放在同一張桌子上,以使事情變得簡單。我之前也試過這個,那就是我如何去做的。