2013-10-19 55 views
1

我有一個調查要做。 30個是/否問題(有4個類型A,B,C,D)。如果回答不是,用戶應該給出理由。我在想創建一個表格,其中有30多列的答案,列名像 A1,A2...A7,B1,B2,...C1,C2...D1,D2...D8.有很多列的數據庫設計表

它們的數據類型是位。我創建另一個表格,僅用於1:1關係的評論。列名像

'A1Cm,A2Cm,...A7Cm,B1Cm.....D8Cm' 

我不認爲這是一個很好的設計。但它是加載到asp.net頁面的最簡單的方法。 有什麼建議嗎?

回答

0

選項1:

QuestionId - int primary key, 
QuestionType - bit - A1,A2...A7,B1,B2,...C1,C2...D1,D2...D8 
QuestionComment - varchar 

選項2:

也可以考慮添加QuestionType和/或QuestionComment表:

QuestionTable:

QuestionId - int primary key, 
QuestionTypeId - int (forigen key QuestionType(Id)) 
QuestionCommentId - int (forigen key QuestionComment(Id)) 

QuestionType:

Id 
QuestionType 

QuestionComment:

Id 
QuestionComment: 
0

這將是最好創建一個問題表來描述每一個問題和一個用戶表來描述每個用戶。然後是第三個表來處理用戶與他們答案的關係。例如:

user(user_id, name, date_answered, ...) 
question(question_id, question_type, name, question_text, ...) 
answer(user_id, question_id, answer, comment, ...) 

user_id列將爲每個用戶會話自動生成。

實例數據會看起來像:

user(555, "Some User", 2013-10-19) 
question (1, "A", "Dog question", "Do you like dogs?") 
answer(555, 1, "NO", "I am afraid of them")