数据库多对多关系

时间:2010-05-07 21:58:06

标签: mysql database-design relationships table-relationships

我有一个学生和教师的桌子。学生的主要关键是studendID(SID),教师的主要关键是教师ID,当然。学生有一个顾​​问专栏和一个请求的顾问专栏,这是教师的外键。这很简单,对吧?

然而,现在我必须投入约会。我希望能够查看他们的顾问在某个季度(例如2009年冬季)以及他们要求的人。

结果将是这样的表格:

Year | Term   | SID       | Current | Requested
------------------------------------------------
2009 | Winter | 860123456 | 1       | NULL
2009 | Winter | 860445566 | 3       | NULL
2009 | Winter | 860369147 | 5       | 1

然后如果我愿意的话,我也可以继续观看不同的一年和不同的一个词。

我不确定这些新表的外观如何。是否会有一个包含秋季,春季和冬季三列的年表?秋天,春天,冬天的桌子会有什么?

我是桌子艺术的新手,所以这让我感到困惑......

此外,我觉得我现在应该澄清网站目前是如何运作的。 管理员可以批准学生的请求,结果是学生的当前顾问被他们的请求覆盖。但是,我想我不应该那样做了,对吧?

2 个答案:

答案 0 :(得分:2)

你有多对多的关系,需要第三张桌子。它们应该存在于新表中,而不是存在于Students表中的Current和Requested列。那张桌子可能是这样的:

StudentAdvisors
StudentAdvisorID, SID, Current, Requested, Year, Term

答案 1 :(得分:0)

我使用的典型方法&被教授为许多关系的是两个表之间的转换表。