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