2009-02-25 43 views
2

當談到SQL時,我是個新手。我正在ASP.NET中製作一個網站來進行調查。特權管理用戶將能夠構建調查。然後很多其他人會迴應調查。SQL結構存儲調查和答案 - 基於用戶數據建立表和查詢?

一旦我有一個新的調查問題集,自動構建表和INSERT查詢來存儲響應的最佳方法是什麼?

UPDATE

感謝您的快速響應!在這種情況下,如何最好地存儲調查回覆,我還有點不清楚。每個受訪者會得到一排表格嗎?如果是這樣,那麼這些專欄是「針對第1欄中的條目所確定的調查的問題k給出的答案」?

+0

更新了我的回覆 – 2009-02-25 14:20:48

+0

Neil發佈的內容正是我們過去的做法。 – schooner 2009-02-25 14:27:06

回答

8

你不想爲每個調查建立一個新表。

創建一個調查表(SurveyID,用戶ID,姓名等)

創建一個問題表(QuestionID,SurveyID,QuestionText,SortOrder的,等等)

可選,創建一個選項表,假設你有選擇題型題(OptionID,QuestionID,OptionText等)

然後當有人創建了一個調查,你插入的調查表,引用此人的用戶名作爲foriegn鍵,然後獲得新插入的SurveyID,

然後對於他們添加的每個問題,將其插入到問題表中,使用上面的SurveyID作爲foriegn鍵......等等。

編輯回答您的編輯:

對不起,我應該遵循通過覆蓋存儲的答案爲好。

你希望另一臺名爲SurveyResponses(ResponseID,名稱等) 而另一張表,我會打電話ResponseAnswers(ResponseAnswerID,SurveyID,ResponseID,QuestionID,AnswerText/AnswerID)凡SurveyID和ResponseID是foriegn鍵thier各自表格,並根據其他用戶有多種選擇,或者輸入答案,您可以將其答案存儲爲文本(varchar)或作爲選項表的另一個foriegn鍵。

1

您可能不希望以編程方式生成架構。

取而代之的是,針對問題(屬於調查),針對回答集(每個用戶一個)和問題回答(屬於回答集)的表進行調查。

0

您不會自動構造表格。該表將被預定義,並且答案將被添加到它們中。我認爲現在開始使用ASP.NET的最佳方式是深入MVC & Linq (http://asp.net/learn