2016-10-21 147 views
1

所以我需要一個關於以下問題的意見/解決方法。PHP問卷調查計算設計

有這個問卷有67個問題,用PHP編碼並使用數據庫(MySQL)。按照設計,數據表如下,其中包含ID和問題編號。

因此,

我將生成一個包含這些答案的報告。即我會得到每個問題的平均值和中位數,並在用戶報告屏幕上顯示它們。現在有493行,想要思考一些不會越來越長的事情來及時處理。

任何意見或方法,使過程更容易(可承受)?我應該爲計算創建一個類並針對每個問題運行並將值存儲在視圖中?找到類似問題的答案here,但無法確定。真的很想聽到任何想法。

Sample Database table

+0

查看正常化 – Strawberry

回答

2

就個人而言,我會避免使用表格寬67列,並做了3列的表格有兩列主鍵代替。

ID | Q | Result 
1 | 1 | 1 
1 | 2 | 3 
1 | 3 | 2 
... 
4 | 5 | 4 

然後運行統計數據;它會延長67倍,但你的統計數據將全部是主鍵查找。無論如何,任何少於幾百萬行的東西都會非常快。

哦,並使用MySQL做統計,這是很好的事情。例如:

SELECT AVG(Result) WHERE Q = 1; 

並使用this solution作爲中位數。

+0

感謝您的審查。我也不會使用它,但不能改變代碼或結構。 – cevizmx

+0

好吧;如果你正在尋找*替代*的方式來顯示快速統計信息;是的,製作一個統計表,然後運行上面的統計查詢並存儲它們,每次插入一條新記錄時,只需引用它即可。你當然可以爲平均值做一個增量更新,但我認爲你不能增加計算中值。 – jhaagsma