問候堆垛機,架構設計時,用戶可以自定義字段
我試圖想出一個應用程序,允許用戶創建調查,並提交給公衆最好的數據庫模式。大多數調查(但不是全部)都會包含一系列「標準」人口統計字段,例如名字,姓氏等。當然,用戶可以創建無限數量的「自定義」問題。
我想到的第一件事情是這樣的:
Survey
ID
SurveyName
SurveyQuestions
SurveyID
Question
Responses
SurveyID
SubmitTime
ResponseAnswers
SurveyID
Question
Answer
但是,這是怎麼回事我想查詢出來的數據,每次吸。它似乎危險地接近Inner Platform Effect
的改進將包括儘可能多的領域,我可以事先在響應表認爲:
Responses
SurveyID
SubmitTime
FirstName
LastName
Birthdate
[...]
然後從這些公共列至少查詢的數據直截了當,並且我可以查詢,例如,曾經回答任何調查問卷的人的平均年齡。
但似乎這樣會使代碼複雜一點。現在要查看調查中詢問哪些問題,我必須檢查哪些常見響應字段已啓用(我猜測,使用Survey中的一個位域)以及SurveyQuestions表中的內容。而且我不得不擔心特殊情況,例如有人試圖在「答覆」表中創建一個重複「常見」問題的「自定義」問題。
這是我能做的最好的嗎?我錯過了什麼嗎?
我可以建議將您的問題的標題更改爲「什麼是調查系統的最佳數據庫模式?」 – 2009-01-09 20:29:28