Составной ключ SQL

Я пытаюсь создать таблицу, которая в качестве первичного ключа использует значения из других таблиц. В моих лекциях говорилось, что это составной ключ (первичный + внешний), но я не могу найти, как его инициировать. Может ли кто-нибудь попробуйте объяснить эту концепцию и как попытаться ее реализовать?


person Theodore Sklavenitis    schedule 02.12.2012    source источник


Ответы (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))
person Himanshu    schedule 02.12.2012