0

我正在设计一个数据库,其中有一个课程表和教授表。业务规则是:

1) 教授可以教授许多课程。(这很明显)。

但是,我陷入了第二条规则。

2)在一个给定的学期,一门课程可以按不同的时间表提供,每门课程都可以由不同的教授教授。例如,一门典型的微积分大一课程每学期约有 100 名学生。该课程分为 4 个部分,每个部分有 25 名学生和不同的教授。

我决定将其建模如下:

Course
{
   course_code
   prof_id
   course_name
   Primary key(course_code, prof_id)
}

Professor 
{
   prof_id
   prof_name

}

你觉得这个设计好吗?如果不是,请提供一些建议。

4

1 回答 1

3

这是一个典型的多对多连接,在这种连接中,您无需直接将课程加入教授,而是有一个可能称为时间表的表:

该表应包含以下信息:

Course
{
   course_code
   course_name
   Primary key(course_code)
}

Professor 
{
   prof_id
   prof_name
   Primary key(prof_id)    
}

Schedule
{
 course_code
 prof_id
 Primary key(course_code, prof_id)
}

您还可以在 scehdule 表中添加一些时间段,以便查看课程在一周中的哪个时间举行

于 2013-07-24T13:13:56.807 回答