2008-11-28 111 views
0

從昨天我的問題遵循....MySQL表結構來生成報表

MySQL Table Design for a Questionnaire

我坐下來與我的老闆昨天下午運行通過我是如何提出來設計數據庫。但是,現在我比以往更加困惑。

他一直在使用Access很多年,並質疑我是否能夠僅使用一列來生成報告(ENUM)。他認爲,根據他在Access方面的經驗,每種可能的反應(即非常滿意,相當滿意,相當不滿意,非常不滿意)都應該有自己的列和數值(即100,66.6,33.3,0)。

這是爲了使數據庫可以生成報告,顯示全國和每個零售商的平均滿意度。

我真的很感謝一些指導,因爲我真的不想讓這個錯誤?

謝謝

回答

1

在這種情況下我也不會去枚舉,我會去一個「分數」一欄。所以列可能是:

userid, questionid, score 
1,1,4 
1,2,4 
1,3,3 
2,1,1 
2,2,4 
... 

1非常不滿意,4非常滿意。

隨後的查詢,如:

select 25*avg(score) from Blah 

會給你總百分比。

select 25*avg(score), questionid from Blah group by questionid 

會給你每個問題的%。

訪問是不是一個真正的數據庫,所以不要聽你的老闆;)

+0

謝謝你,非常有幫助:-) – Lisa 2008-11-28 10:47:18

1

JD是正確的,因爲需要做的得分平均,將INT列是要走的路。

至於你的老闆,他錯了。 8 ^)也許最好的方式來說服他,說明你將如何使用我們正在討論的設計來完成報告生成:編寫一些腳本來生成一些假數據(即,隨機生成大量值1..4範圍),然後使用一些SQL(JD有一些很好的起點)來生成一些Q報告。

+0

謝謝你的幫助:-) – Lisa 2008-11-28 12:53:18