2013-07-06 36 views
0

我的火腿目前正在設計一個數據庫表和vb格式。該表格將向每個用戶詢問約40個預定義的是/否問題。我怎樣才能設計數據庫表,以便正確存儲答案。我寧願避免桌子上有40個左右的屬性。有沒有一種方法來設計它,以便當您查詢某個特定用戶的答案時,您會看到問題並且在其旁邊顯示他的答案(是/否) 謝謝數據庫設計建議 - 多個是或否問題

+0

一個表格有三個字段:UserID,QuestionID,AnswerText –

+0

我看到圖片。謝謝 –

回答

0

您可以將問題和答案存儲在單獨的桌子。具體來說,您將有一個Questions表,其中有40個是/否問題。 Answers表將包含問題標識符,用戶標識符和答案的列(對於是/否問題,您可以只使用布爾值)。 AnswerChoices也可以是單獨的表格。

根據您的需求有很多可能的靈活性。如果同一用戶可以多次參加調查,則可以使用用戶調查表並鏈接相應的答案。如果需要進行多項調查,您還可以製作調查問卷映射表。

+0

謝謝你的幫助 –

1

這就是我該怎麼做的。列出QUESTION表中的所有問題。這也意味着只要添加新行就可以隨時添加新問題。

用戶

UserId | UserName |電子郵件|等..

問題

QuestionId |問題

USER_RESPONSE

UserId | QuestonId |響應


SELECT 
user.Name, 
question.Qustion, 
user_response.Responce 
FROM 
user 
INNER JOIN user_response 
ON user.UserId = user_response.UserId 
INNER JOIN question 
ON user_response.QuestionId = question.QuestionId 
WHERE 
user.UserName = 'JoeBloggs' 
+0

謝謝斯科特... –

1

確定在最簡單的術語作出(「用戶」)與用戶名出發的現場表1 做問答表,在所有這些問題(前提是你不想要硬編碼這些在你的程序) 做一個答案表,這個表應該有2列...用戶ID和答案

你不需要外鍵這兩個,雖然它的長遠來看它更好,當它來刪除數據(它會讓你知道爲什麼你不能刪除一個用戶,例如,如果他還沒有刪除的問題,這是一個因爲用戶將被刪除,所以你真的不需要保留空白空間)

然後你要做的就是當你一次或一次提交問題1時,將用戶ID提供給答案表,回答。所以用戶1總是1,答案會改變。

如果我是你,我會創建問題表以及。所以整個事情看起來像

用戶表

用戶名,用戶名,爲userpass,用戶......,用戶...等

問表

QuestionID,問題

回答表

用戶名,QuestionID,答案

所以在你的程序,因爲你知道哪個問題對應哪個q uestionID,你會插入

1(用戶名),1(to40forQuestionID),answer.text(答案)爲答案表

那麼你將總是能夠抓住從答案表格您的所有信息,知道什麼答案屬於極其重要的問題,並適用於最終用戶等。

如果您需要使用術語來解釋他的解釋,那麼我試着將所有的術語全部留給簡化,以免您不知道它們。

+0

謝謝你Pakk –

+0

請不要忘記投票給你找到正確的,有幫助的答案:P快樂編碼 – Pakk