2010-10-21 65 views
0

我目前的“学习”笨,PHP和MySQL一下子,我试图创建一个“清单”类型的网站,游客在这里注册,创建一个项目,并问的问题,他们必须输入某些领域MySQL数据库设计 - 清单/测验应用

我对我的MySQL数据库的设计有点卡住列表...(完全被卡住实际上)

它归结为是...

1个项目可以有3种类型之一。 “类型A/B/C”

键入具有20个问题

b型 =类型A + 15个问题

键入c = b型+ 15层的问题...

所以基本上我希望能够轻松地说,质疑是A型 AND/OR B型不是C

现在,我不知道我在做什么是正确的,但我基本上是两张桌子,然后设置它们之间的关系“多对多”(我认为?)n:m in MySQL工作台

ProjectType 
id 
ProjectTypeName 

Questions 
ID 
Title etc... 

ProjectType_has_Questions 
ProjectType_id 
Questions_id 

而且,每一个问题 “即可,并不一定要” 有3个结果(当前事实)和3个修正(改进的结果)。

我不知道这是否作出任何意义,任何人在这里,肯定是地狱的baffeling我: -/

有什么想法?

PS:我试图附加的图像,但看到因为这使用此不允许该网站是我的第一次。

+0

做题有类型或只是有类型的项目?您的草图模式似乎只有项目类型。如果问题没有类型,你的意思是什么*问题A是类型A *? – 2010-10-21 22:04:37

+0

有几件事情还不清楚。用户可以定义自己的项目,还是只选择几个预定义类型的项目中的问题答案?什么是“当前事实”和“结果改善”? – John 2010-10-21 22:15:42

+0

让我试着澄清...... 我正在尝试创建一个与http://www.launchlist.com相媲美的列表,但后来更专注于搜索引擎优化规则。 因此,用户将注册,然后提供他必须填写的列表。 将有三种类型的列表,必须在项目开始时选择。 我认为John @ cashcommons的'灵活'的答案,我创建一个链接表的路要走吗? 所以,我会创建一个表格,其中包含所有问题,然后是问题组所在的表格,最后创建一个表格,将组分配给一个问题。 http://alturl.com/ve8y3 - img我的DB EER模型。 – Jbcarey 2010-10-22 06:00:20

回答

0

,我会以我的理解这里做出回应。还有一些我在你的问题中评论过的其他问题。

如果您的项目类型总是会聚合的 - 也就是说,类型C始终是类型B的超集,它始终是类型A的超集 - 那么对于这些​​问题,您可以指定那个特定的最大项目问题将被列入的,说,如果一个问题将出现在A型和B,然后指定问题类型B如果它会出现在所有三种类型,其指定为类型C.

你犯但是当你这样做的时候你自己。更灵活的方法是创建一个包含问题ID和项目类型ID的链接表。每个问题可以在此表中有一个或多个条目。