2011-07-27 56 views
0

好的,所以我一直在考慮像Reddit.com這樣的各種網站。有成千上萬的帖子,併爲每個帖子數以千計的評論,最重要的是有用戶跟蹤所有評論和帖子的投票。大型投票模式:你會怎麼做?

因此,考慮文章,評論和文章票(不真正關心的評論票)我知道如何做到這一點會是3代表的方式:

文章: ID,價值,用戶名, totalvotes,其他培訓相關數據

評論: ID,條款ArticleID,值,用戶名,其它培訓相關數據

票: ID,條款ArticleID,用戶名,votevalue(+ 1,-1),其它培訓相關數據

所以基本上是文章和評論/投票之間的一對多關係。以下是我對此的疑問:

  1. 這是正確的方法嗎?

  2. 通過迭代整個投票表來尋找正確的文章,是否會非常緩慢地計算所有選票?

  3. 你會保持一個正在運行的總數或每次查詢整個投票表(問題2)。

  4. 我的另一個想法是爲每篇文章動態創建表格,但這可能是矯枉過正的。思考?

回答

2
  1. 沒有 - 索引是你的朋友
  2. 沒有 - 那就是非規範化,並會難以維持
  3. 哦..沒有
+1

* 4。哦......不,太好了! ; d – Yoshi

0

一個答案:緩存

正如Randy所說,如果您的表的索引很好,那麼擁有大量數據並不是什麼大不了的事,但對於良好的用戶體驗而言,它可能太慢。因此,請考慮緩存所有可能的內容(如響應數),並僅在發表新評論時更新此內容。 另外,我強烈建議您在頁面加載時取出所有未由ajax緩存的相關數據,而不是直接執行。

TLDR:

。是

。否

。 Cache

。地獄號