Mysql数据库设计 - 清单/测验应用程序

时间:2010-10-21 21:58:29

标签: mysql database database-design mysql-workbench

我正在“学习”codeigniter,php和mySql,因为我尝试创建一个“清单”类型的网站,访问者注册,创建项目并询问问题列表,他们必须在哪里输入某些字段

我的mySQL数据库设计有点困难......(实际上完全卡住了)

归结为......

1个项目可以有3种类型之一。 “输入a / b / c”

输入有20个问题

键入b =键入a + 15个问题

输入c =输入b + 15个问题......

所以基本上我希望能够很容易地说,问题A是 A型和/或 B型不是C

现在,我不知道我在做什么是正确的,但我基本上是制作两张桌子然后在他们之间建立一个“多对多”的关系(我想?) n:m在mySQL工作台中

ProjectType
id
ProjectTypeName

Questions
ID
Title etc...

ProjectType_has_Questions
ProjectType_id
Questions_id

此外,每个问题“CAN,not must”都有3个结果(当前事实)和3个更正(结果改进)。

我不知道这对这里的任何人是否有任何意义,肯定会让我感到困惑: - /

有什么想法吗?

ps:我试图附上一张图片,但看到这是我第一次使用该网站,这是不允许的。

1 个答案:

答案 0 :(得分:0)

我会回复我在这里理解的内容。还有一些我在你的问题中评论过的其他问题。

如果您的项目类型将始终聚合 - 也就是说,类型C始终是类型B的超集,它始终是类型A的超集 - 那么对于问题,您只需指定该特定问题的最大项目如果问题出现在类型A和B中,则将问题指定为类型B.如果它将出现在所有三种类型中,则将其指定为类型C.

但是,当你这样做时,你就是在承诺。更灵活的方法是使用包含问题ID和项目类型ID的链接表。每个问题在此表中都可以有一个或多个条目。

相关问题