如何在MySQL中设置这些表的关系?

时间:2012-03-17 21:05:25

标签: mysql database database-design relational-database

1课程至少有1堂课

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 tut + 2 labs

我的结构将因情况#1而失败(因为0 TUT会制动LEC和LAB之间的链接)


替代结构(由octern提议):

课程 - LEC

LEC - TUT

LEC - LAB

问题在于:我如何确定学生是否需要参加1或2个实验?

1 个答案:

答案 0 :(得分:0)

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