在MySQL中设计分层模式

时间:2012-05-02 08:10:54

标签: mysql database database-design relational-database

我正在为我们社区的一个小项目设计一个测量系统。 但不知何故,我陷入了如何以这样的方式正确设计系统的困境 它可以在数据库端配置。

我的用例是这样的: 这是一种调查系统,用户可以根据他们的答案提出一系列问题 另一个问题是问。我计划将其显示为步骤/向导页面。

                                   | --- Answer C  --> End Survey
        |--- Answer A  --- Q2 ---- | --- Answer D  --> End Survey                                                       
Q1 ---> |                          | --- Answer E  --> End Survey                               
        |
        |--- Answer B  --- Q3 --- | --- Answer F  --> Q7  ---> End survey
                       |          | --- Answer G  --- Q8  --- | Answer H --> End Survey
                       |                                      | Answer I --> End Survey
                       |                                      | Answer J --> End Survey
                       --- Q4 --- End Survey                  | Answer K --> End Survey

在我的图表中,用户首先显示Q1(问题1),如果他的答案是A,则Q2将显示答案列表(C,D,E)然后调查 停止。 但如果用户回答B,那么他将在同一页面上显示Q3 + Q4。如果用户在Q3上回答F,那么下一个问题是Q7并且一直打开。

我正在考虑创建一个用于保存问题的QUESTION表和一个用于保存答案列表的QUESTION_ITEMS表,但是如何处理状态转换?

我实际上坚持如何正确支持用户能够配置的这种要求 问题清单。

有什么想法吗?

顺便说一下,我的目标数据库是MYSQL。

谢谢

1 个答案:

答案 0 :(得分:2)

我认为有问题问题(又名答案)是有道理的。然后,您只需将每个 question_item 链接到其后续页面即可。使用页面的单独列将这些问题组合在一起。

<强>问题

ID   Name    Page
1    Q1      1
2    Q2      2
3    Q3      3
4    Q4      3

<强> Question_Items

ID   Name        Question_ID    Next_Page
1    Answer 1    1              2
2    Answer 2    1              3

等...