2017-01-23 94 views
-2

我目前正在編寫一個web應用程序,我正在設計我的數據庫來存儲要從Web應用程序收集的信息。我應該爲數據庫創建一個大表還是多個小表

當前Web應用程序旨在向用戶展示用戶必須填寫的僅有ONE調查問卷。用戶必須完成的調查問卷將基於幾個因素。

總共有4份不同的問卷。

每個調查問卷將有不同數量的問題。

所以我的問題是:

我要設計4個不同的表制定的問卷調查,或者我應該創建1臺,將有足夠的行和列來存儲所有4個問卷的迴應?哪個選項對系統最爲有效且費用最低。

如果我打破他們到基於問卷調查4頁不同的表,這將是一個主鍵

我已經有用戶等表的最佳解決方案..

感謝

尼克

+2

請不要標記'mysql'和'sql-server',除非你真的有一個問題涉及到兩者。如果你可以刪除不適用於你的問題的標籤,那麼所有遇到它的人都會受益。 **另外,**基於意見或太寬泛的問題很可能會被關閉。由於這個問題並不直接涉及需要調試/解決的問題,而是一個開放答案的問題,因此它不屬於SO。 – Santi

+0

單個調查問卷的設計應該(可能)需要多個表格;針對多個問卷的設計應該只需要一張附加表格,並且用於單個問卷的表格中的附加字段用於標識那些表格中的哪些行屬於哪個問卷。 – Uueerdo

+0

寫下的這個問題可能太寬泛了。你在使用ORM嗎?這些表是隻插入還是更新?你的可擴展性要求是什麼? –

回答

0

聰明人說:你可以通過表格的數量來判斷數據庫的質量......嗯,這是 - 當然! - 在所有情況下都不是這樣,但將所有功能於一身幾乎都是錯誤的概念。

儘量不要重複數據!

有一個表的questionair(一個ID作爲主鍵,它的名稱,創建時間,一些元數據)

一個表的所有可能出現的問題(ID,QuestionText,答案[類型是/否,數字階,選擇,自由文本,...] ...)

一個表來連接這兩個(QuestionairID,QuestionID,...)

如果答案是必然要給出列出了可能需要一個表格來尋找可能的答案,而這又需要一個自己的表格來映射他們的問題

等等...

這就是所謂的關係數據庫模式

你真的應該閱讀,瞭解這一點,你開始設計自己的數據之前!

祝你好運!

+0

我不確定這種設計需要多對多的關係,「親子」關係可能更合適。我認爲問題可能不會獨立於包含它們的問卷(參考「父母」調查問卷),並且在多個問卷中重複相同的問題(具有相同的答案集)對於許多人來說太罕見了一對多地提供任何好處。 – Uueerdo

+0

@Uueerdo可能......這取決於問題......如果這是關於4種不同的產品,問題可能幾乎相同。如果這是關於家庭,工作,假期和電影,你是對的。對於一個小學生的項目來說,可能更少......但是 - 在開始之前 - 至少應該知道這些原則...... – Shnugo

+0

誠然,如果項目是針對進行客戶滿意度調查的公司,那麼可能會有很多在問題上重疊;它確實有利於設計者瞭解_使用案例和/或驗收標準。 – Uueerdo

相關問題