0

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

我的 mySQL DB 设计有点卡住了……(实际上完全卡住了)

归根结底是……

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

A型有20个问题

类型 b = 类型 a + 15 个问题

c型 = b 型 + 15 个问题...

所以基本上我想能够轻松地说,问题 A 是类型 A和/或类型 B不是 C

现在,我不知道我所做的是否正确,但我基本上是在制作两个表,然后在 mySQL 工作台中设置它们之间的“多对多”关系(我认为?) n:m

ProjectType
id
ProjectTypeName

Questions
ID
Title etc...

ProjectType_has_Questions
ProjectType_id
Questions_id

此外,每个“可以,不是必须”的问题都有 3 个结果(当前事实)和 3 个更正(对结果的改进)。

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

有什么想法吗?

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

4

1 回答 1

0

我会在这里回复我所理解的。我在您的问题中评论了其他一些问题。

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

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

于 2010-10-21T22:21:01.067 回答