我目前正在“学习”代码签名人,PHP和MySQL时,我尝试创建“清单”类型的网站,访问者注册,创建一个项目并被询问一个问题列表,他们必须在其中输入某些字段,

我有点卡在我的mysql db-design上...(实际上完全卡住了)

归结为...

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

类型A。 有20个问题

类型b = A类 + 15个问题

类型c = B + 15个问题...

因此,基本上我想可以轻松地说,问题A是 类型A。 和/或 类型b不是c.

现在,我不知道我在做什么是正确的,但是我基本上是在制作两个桌子,然后在它们之间建立了“许多人”之间的关系(我想?) n:m在MySQL Workbench中

ProjectType
id
ProjectTypeName

Questions
ID
Title etc...

ProjectType_has_Questions
ProjectType_id
Questions_id

同样,每个问题“可以,不得必须”都有3个结果(当前事实)和3个校正(结果改进)。

我不知道这对这里的任何人都有任何意义,当然,因为地狱让我感到困惑: - /

有什么想法吗?

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

有帮助吗?

解决方案

我会回应我在这里理解的内容。我在您的问题中提到了其他一些问题。

如果您的项目类型始终汇总 - 也就是说,C始终是B型的超集,它始终是A型的超集 - 那么,对于问题,您只能指定最大的项目,即将包括该特定问题在。例如,如果一个问题将出现在类型A和B中,则将问题指定为类型B。如果将其出现在所有三种类型中,则将其指定为类型C。

不过,当您这样做时,您正在承诺自己。这样做的一种更灵活的方法是拥有一个链接表,其中包括问题ID和项目类型ID。每个问题都可以在此表中有一个或多个条目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top