如何拿出合适的桌面设计?

时间:2012-12-21 08:48:23

标签: database-design

我有一个问题如下:

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

如果对上述三个问题中的任何一个回答“是”,请询问

  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个问题但是他们的所有id都是1 ....而(1.1)是问题编号(1)的子问题,它实际上由两个具有相同id的问题组成(这里可能是任何数字,不一定是1.1)。

1.1.1是子问题内的问题。

现在我如何在sql server中创建一个包含上述所有数据的表,以便回答上述问题将适当地插入表中。如果解决方案被规范化而不是去规范化,那将非常感激。

如果答案的表格显示所有要插入的选项,如是/否,描述性答案将更加值得赞赏。

3 个答案:

答案 0 :(得分:0)

假设表格有问题。那里有一个类型列。说主要问题你插入1和分支u插入2.如果你说主键他们不能有相同的id。 U可以做一件事,就是根据你的需要显示表格中的项目。字段可能是这个。 1.我, 2.输入, 3.问题。并休息你的愿望

答案 1 :(得分: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

答案 2 :(得分:0)

您可以将问题和答案存储为Bhrugesh Patel建议。

为了模拟哪些问题应该跟随哪些问题,您需要state transition table

  

状态转换表是一个表,显示有限半自动机或有限状态机将根据当前状态和其他输入移动到的状态(或非确定性有限自动机的状态)。