我正在设计一个数据库,我有一个课程表和教授表。业务规则是:
1)教授可以教授很多课程。 (这很明显)。
然而,我陷入了第二条规则。
2)在一个学期中,可以按不同的时间表提供课程,每个课程都可以由不同的教授讲授。例如,一个典型的新生微积分课程每学期约有100名学生。该课程分为4个部分,每个部分有25名学生和一名不同的教授。
我决定将其建模如下:
Course
{
course_code
prof_id
course_name
Primary key(course_code, prof_id)
}
Professor
{
prof_id
prof_name
}
你觉得这个设计好吗?如果没有,请提供一些建议。
答案 0 :(得分: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表中添加一些时间段,以便查看课程的一周中的哪个时间