@epitxx

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

Структура:
628a2b61511bc546084123.png
Как гарантировать, что в таблице "успеваемость по предмету" student_id и task_id будут такими, что группа студента будет совпадать с группой, к которой относится задание?
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 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...;


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

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

Похожие вопросы