我正在研究一個PHP應用程序,它有幾個可以評論的對象。每個評論都可以投票,用戶可以給它+1或-1(如Digg或Reddit)。現在我正計劃擁有一張載有user_id及其投票信息的「投票」表,這似乎工作正常。評論投票數據庫結構的最佳做法
問題是,每個對象都有數百個註釋存儲在單獨的註釋表中。在我加載評論之後,我必須對票進行總結,然後逐個檢查每位投票者,以確保他們只能投票一次。這工作,但似乎真的是數據庫密集型 - 很多隻是評論的查詢。
是否有一個更簡單的方法來減少數據庫密集度?我目前的數據庫結構是最好的方法嗎?
更清晰瞭解當前的數據庫結構:
評論表:
- USER_ID
- OBJECT_ID
- total_votes
投票表:
- COMMENT_ID
- USER_ID
- 投票
最終目標:
- 允許用戶在每個評論有至少#MySQL的查詢只有一次投票(每個對象有多條評論)
實際上幫助很大,謝謝!有關兩個主鍵的想法甚至沒有跨過我的想法。 – mdolon 2009-05-01 02:26:00