我的web應用程序處理民意調查(調查)。現在我有2個表作爲數據庫模式的一部分。需要關於反規範化處理對民意調查的響應的數據庫的建議
polls
id
question
choices (ex: yes,no,maybe)
created
polls_responses
poll_id
user_id
tracker_id
response
這樣做的問題是,在一些民意調查我有很多的響應(> 1000)。人們可以查看投票結果,它會顯示有多少用戶投了贊成,不贊成,或者可能有多少匿名用戶投贊成,不贊成,或者可能。問題在於,無論用戶何時查看投票結果,都必須遍歷所有響應,並計算總響應數,每個選項的響應數,用戶每次選擇的響應數,以及tracker_id(匿名用戶)對每個選擇的響應數量並計算百分比並將其顯示在條形圖中。這使得頁面加載非常慢。我想非規範化的數據庫,以提高性能,使我們有這樣的事情
polls
id
question
choices (ex: yes,no,maybe)
total_responses (ex: 10,3,3,4)
user_responses (ex: 5,2,2,1)
anon_responses (ex: 5,1,3,1)
created
polls_responses
poll_id
user_id
tracker_id
response
也就是說,在total_responses
值,10爲總,3是響應#供選擇yes
,3是選擇的響應數#no
,並且4是選擇的響應數#maybe
。相同的格式適用於user_responses
和anon_responses
字段。如果我能就這種方法得到一些意見,將不勝感激!謝謝你的時間。
編輯:我使用的是MySQL