2012-12-21 52 views
0

我有如下一個問題:如何拿出合適的桌子設計?

1.Are you a good boy ? 
    ans:Yes/No 
OR,Are you a good girl? 
    ans:Yes/No 
Or,Are you a good father? 
    ans:Yes/No 

如果答案是'Yes(是)任何的上述三個問題,然後問

1.1 What is your age?ans:textbox 
     OR 
     What is your birth date?ans:textbox 

    1.1.1 Where were you born?ans:textbox //this is the question inside the sub-question   

現在的問題(1)實際上有3個問題,但所有(1.1)是問號(1)的子問題,它實際上由兩個具有相同ID的問題組成(這裏可能是任何數字不一定是1.1)。

1.1.1是子問題裏面的問題。

現在如何在sql server中創建一個包含上述所有數據的表格,以便回答上述問題將適當地插入到表格中。如果將解決方案標準化而非標準化,那將非常值得讚賞。

如果答案的表格中顯示的所有選項插入爲「是/否」,則說明性答案會進一步得到讚賞。

回答

0

假設表格是問題。在那裏有一個類型欄。說主要問題你插入1和分支你插入2.如果你談論的主鍵他們不能有相同的ID。 U可以做一件事情,即根據需要顯示錶格中的項目。領域可能是這樣的。 1. Id, 2.類型, 3.問題。並休息你的願望

+0

謝謝您的及時答覆。但是,這並不能解決我的問題,因爲問題不在於main和branch.Its有關OR的問題,例如上述3個問題編號爲1.All必須具有相同的id即即使你的引用,他們必須得到1違反pk約束的id。類似地,在子問題中也有一個OR也必須得到相同的ID。我是否已經明確了我的解釋? – dpen82

0

這有點混淆,我不確定你當前的模式,但如果問題是從一個設定值預定義的,這個模式是一個需要解決的問題。

Questions 
================= 
questionID 
optionID 
subID   (0 if not a subquestion) 
Question 
Composite Primary Key (questionID, subID) 

Answers 
================= 
userID 
questionID 
optionID 
subID 
answer 
Composite Primary Key (questionID, subID) 

另一種方法可以..

Questions 
=============== 
questionID  //Unique question ID 
questionRank //On which question number it is available i.e. 1 for "Are you a good..." 
subCategory  //0 if main question, sub ID number if a sub question 
question  //Actual question 

UserAnswers 
=============== 
userID 
questionID 
answer 
+0

感謝Bhrugesh至少我有一個關於如何解決這個問題的想法。 – dpen82

+0

Bhrugesh如果子問題裏面有一個子問題呢? – dpen82

+0

而不是子類別號碼,使用subQuestionID ...所以基本上存儲像一個具有唯一questionID的正常問題,但它的subQuestionID是父問題的唯一questionID ...簡單...即問題1.1的問題ID是15,然後問題1.1.1有questionID 16,questionRank 1(因爲它的第一個),subQuestionID 15(因爲它的父問題1.1有ID 15)並且問題是真正的問題 –

0

您可以將存儲的問題和答案作爲Bhrugesh Patel建議。

爲了模擬哪些問題應該遵循哪些其他問題,您需要一個state transition table

狀態轉換表是表示什麼狀態的表(或在非確定性有限自動機的情況下,狀態)的有限半自動機或有限狀態機將移動到,基於當前狀態和其他輸入。