SQL: структура базы данных

У меня есть небольшое затемнение.

В моей базе данных до сих пор есть следующие таблицы:

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

Теперь у меня проблемы с соединением оценок со студентами и курсами.

Оценки также должны быть связаны с учебным годом. Например

  • 1-й год, 1-й семестр: 12 баллов
  • 1-й год, 2-й семестр: 10 баллов
  • 2 курс, 1 семестр: 8 баллов
  • 2 курс, 2 семестр: 5 баллов

Я думал о

StudentsCoursesMarksYear: StudentID, CoursesID, Mark, Year

Но я думаю, что это не совсем правильно / лучший...

2 ответа

Можете добавить Year, Semester а также Mark в CoursesStudents таблица, потому что если вы добавите еще одну таблицу, эта таблица бесполезна

Ты рядом. Но год не выглядит достаточным; тебе тоже нужен семестр

StudentMarks: StudentID, CourseID, Mark, Year, Semester

Первичный ключ: {StudentID, CourseID, Mark, Year, Semester}. Поскольку это все ключ, он как минимум в BCNF.

В реальном академическом приложении вам почти наверняка понадобятся несколько других таблиц. Например, один из них может касаться того, какие годы и семестры предлагается конкретный курс. (Некоторые из моих курсов предлагались только в четные годы.)

Другие вопросы по тегам