@epitxx

Как проверить внешний ключ?

Структура:
628a2b61511bc546084123.png
Как гарантировать, что в таблице "успеваемость по предмету" student_id и task_id будут такими, что группа студента будет совпадать с группой, к которой относится задание?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 2
@hacker2001
Предмет не должен быть привязан к группе. Один предмет может преподаваться в разных группах (тут связь many-to many) и в разном объеме (количестве часов). Задание дается ученикам какой-то группы, те: id, group_id, subject_id
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Не совсем понятно о каких гарантиях тут идет речь. Когда база создается с нуля (таблицы еще пустые) то после создания таблиц (или во время создания) делаются contstraints которые описывают связи между таблицами и реакцию на delete/update. Типа

.... CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`) ON DELETE
  RESTRICT...;


И после этого из базы нельзя удалять родительские ключи пока на них есть дочерние связи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы