У меня есть три таблицы СТУДЕНТ, ОТДЕЛ И КУРС в базе данных университета ... У СТУДЕНТА есть UID в качестве основного ключа -> который является УНИКАЛЬНЫМ ID студента ОТДЕЛ имеет Dept_id как первичный ключ -> который является номером департамента КУРС имеет C_id как первичный ключ -> который является идентификатором курса/субъектаПроверка целостности данных для объекта
Мне нужно хранить отметки в таблице, связывая первичный ключ СТУДЕНТА, ОТДЕЛ и КУРС для каждого учащегося в каждом курсе.
UID Dept_id C_id marks
1 CS CS01 98
1 CS CS02 96
1 ME ME01 88
1 ME ME02 90
Проблема заключается в том, если я создать таблицу, как это для знаков, то я чувствую, что оператор данных может ввести неправильную комбинацию первичного ключа студента, например
UID Dept_id C_id marks
1 CS CS01 98
1 CS CS02 96
1 ME CS01 88 //wrong C_id (course id) inputted by the DBA
1 ME ME02 90
В этом случае как я могу препятствовать ему это делать? Также есть ли способ сохранить отметки для каждого ученика? Я имею в виду люблю:
UID Dept_id CS01 CS02
1 CS 98 96
3 CS 95 92
Кроме того, ваш бизнес-уровень должен гарантировать, что оператор данных не может выбрать недействительный курс для указанного отдела. Возможно, вы захотите сопоставить это отношение в базе данных. – BenW
Благодарим вас за предложение. Я думаю, что буду использовать вашу идею и изменить ее, включая Dept_id в таблице курса. –