如何规范调查网站的数据库?

时间:2018-04-04 22:00:59

标签: mysql database database-normalization

我正在尝试建立一个调查网站,但我无法规范化数据库。我不知道如何关联数据库中的问题和答案。问卷和问卷之间有很强的关系。由于我在问题表中将QuestionID作为主键,因此问号的ID个数字是唯一的。这就是答案表的工作原理。我该怎么做?

┌────────────────┬─────────────┬────────────┬────────────┬──────────────┐
│     Member     │   Survey    │  Question  │   Choice   │   Category   │
├────────────────┼─────────────┼────────────┼────────────┼──────────────┤
│ ID             │ SurveyID    │ QuestionID │ ChoiceID   │ ID           │
│ FirstName      │ SurveyorID  │ Question   │ Choice     │ CategoryName │
│ LastName       │ SurveyTitle │ SurveyID   │ QuestionID │              │
│ Mail           │ CategoryID  │            │            │              │
│ Password       │             │            │            │              │
│ NumberOfSurvey │             │            │            │              │
└────────────────┴─────────────┴────────────┴────────────┴──────────────┘

1 个答案:

答案 0 :(得分:0)

我想出了一个可能适用于你的情况的结构,很少或没有修改。数据库结构位于附加的Image中。标有*的所有列都是要设置为主键的列。如果您不确定如何将多列设置为主键,请参阅Composite Keys

┌────────────────┬─────────────┬────────────┬────────────┬──────────────┐
│     Member     │   Survey    │  Question  │   Choice   │   Category   │
├────────────────┼─────────────┼────────────┼────────────┼──────────────┤
│ MemberID*      │ SurveyID*   │ QuestionID*│ ChoiceID*  │ CategoryID*  │
│ FirstName      │ MemberID*   │ Question   │ Choice     │ CategoryName │
│ LastName       │ SurveyTitle │ SurveyID*  │ QuestionID*│              │
│ Mail           │ CategoryID* │            │            │              │
│ Password       │             │            │            │              │
│ NumberOfSurvey │             │            │            │              │
└────────────────┴─────────────┴────────────┴────────────┴──────────────┘

祝你好运!