SQL составной ключ
Я пытаюсь создать таблицу, которая в качестве первичного ключа использует значения из других таблиц. В моих лекциях говорилось, что это составной ключ (первичный + внешний), но я не могу найти способ его инициации. Может кто-то попытаться объяснить эту концепцию и как попытаться реализовать ее?
1 ответ
Рассмотрим данные, которые состоят из наборов студентов и курсов. Когда вы сохраняете его в СУБД, каждый студент (или курс) будет иметь связанный уникальный идентификатор, который будет называться первичным ключом студента (или курса).
students(id, name, dob)
courses(id, name, credits)
Чтобы связать студентов с зачисленными на них курсами, вы создадите таблицу, которая выглядит следующим образом.
student_course(student_id, course_id)
Чтобы создать это на самом деле в MySQL, вы должны написать что-то вроде:-
CREATE TABLE student_course(student_id INT NOT NULL,
course_id INT NOT NULL,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN_KEY (course_id) REFERENCES course(id))