2012-03-17 77 views
0

1场具有至少1讲如何在MySQL中设置这些表的关系?

1讲座可以具有0个或多个教程

1讲座可以具有0个或多个实验室

1教程可以具有0个或多个实验室

这我的桌子是如何设置的: This is how my tables are setup for the moment

我遇到过两种不同的课程情况:

1 - 对于给定的演讲,您有0个教程,但有2个实验部分(您只选择1个实验室) - >所以1个lec + 1个实验室 2 - 对于给定的演讲,您有2个教程和2个教程与每个相关联的教程实验室 - >所以1个LEC + 1个啧+ 2个实验室

我的结构将用于情形#1失败(因为0 TUT将制动LEC和LAB之间的链路)


替代结构(由octern建议):

课程 - LEC

LEC - TUT

LEC - LAB

这样做的问题是:我怎么确定学生参加1级或2的实验室?

回答

0

如果您所描述的规则完全准确,那么您提出的关系是正确的。 “1个教程可以有0个或更多个实验室”意味着每个实验室都与(至少?)一个教程相关。但是当你说,“如果一个讲座没有教程,但只有一个实验室,这会失败”,你说这些规则不能准确地模拟这种情况。你在说实验室与讲座有关,不是教程。所以TUTLAB上的外键都应该是lec_id

+0

谢谢octern,你提出的结构,我如何确定学生是否需要1或2个实验室? – user666923 2012-03-17 22:29:19

+0

您以前的模型会如何确定?现在,我没有看到数据库中的任何内容谈论学生需要注册的内容。 – octern 2012-03-18 07:33:52