SQL:数据库结构

时间:2014-01-31 17:53:02

标签: sql database database-normalization

我有点停电。

在我的数据库中,我现在看到以下表格:

  • Courses: ID
  • Students: ID
  • CoursesStudents: CourseID, StudentID

现在我将标记与学生和课程联系起来有问题。

商标必须与学年相关联。 E. g。

  • 第一学年,第一学期:12分
  • 第1学年,第2学期:10分
  • 第二学年,第一学期:8分
  • 第二学年,第二学期:5分

我想过

StudentsCoursesMarksYear: StudentID, CoursesID, Mark, Year

但我认为这不是对的/最好的......

2 个答案:

答案 0 :(得分:0)

你关闭了。但这一年看起来并不充足;你也需要这个学期。

StudentMarks: StudentID, CourseID, Mark, Year, Semester

主键是{StudentID,CourseID,Mark,Year,Semester}。因为它是关键所在,它至少在BCNF中。

在现实世界的学术应用中,您几乎肯定需要其他几个表格。例如,一个可能与提供特定课程的年份和学期有关。 (我的一些课程仅在偶数年份提供。)

答案 1 :(得分:0)

您可以将YearSemesterMark添加到CoursesStudents表,因为如果您添加另一个表,则此表无用