2008-10-30 167 views
2

類似於StackOverFlow中的一個,我將需要實現一種方式讓人們投票並在網站等論壇中投票。豎起大拇指/大拇指向下評級實施

然而,我們將顯示「贊成」和「大拇指朝下」的總數。總分將用於過濾目的,如「按最高評分排序」,「僅顯示評分+3」

什麼是最佳實施策略?

作爲用戶的建議,我也會被存儲誰鑄造了投票信息

回答

3

那麼你就需要存儲評級(評論ID,用戶名,票值),這樣就可以計算出,並停止重複投票但我強烈建議你在你的主要評論實體上添加一個VotesUp和VotesDown字段。

爲什麼重複?速度。否則你將會做出令人厭惡的SUM-WHERE陳述,並且他們會將數據庫服務器放到地上。在標題記錄上添加一些額外的字節,您可以對您的內容進行排序和篩選。

編輯:如果您打算在某些情況下按總分進行排序,您可能需要添加第三個字段(VoteTotal)。

編輯2:如果您能夠緩存內存中的所有評論標題,則重複是毫無意義的。雖然這是很多數據,你需要大量的內存來有效地緩存它。如果你不是億萬富翁,我只需要複製數據。

+0

您是否建議在寫入投票信息(who,when,value)到數據庫事務中的數據庫的同時增加/減少評論標題求和值以防止可能的不一致或可能更新的計劃任務總結的價值經常? – Sprogz 2008-11-12 13:02:39

0

一些好的開源參考,但不是所有的你問會dotnetkicks

而且聽這StackOverFlow podcast哪裏這個網站的創建者討論如何摸索出他們的一些要求。如果您正在計劃上述內容,則需要收聽。

然後,一旦你在那裏,像uservoice這樣的服務鏈接將在開發早期給你一些有價值的反饋。