학생과 과목은 직접 잇지 않고, “수강” 테이블을 사이에 둡니다.
양쪽 PK를 새 테이블의 FK로 가져오면 관계 자체가 하나의 기록이 되고, 학기·성적 같은 관계 속성도 함께 저장할 수 있습니다.
학생
students
students
→
수강 기록
enrollments
enrollments
←
과목
courses
courses
students
student_id PK
name
enrollments
student_id FK
course_id FK
semester
grade
courses
course_id PK
title
credit
새 테이블의 정체
교차 테이블은 단순 연결선이 아니라 “누가 어떤 과목을 언제 수강했는가”라는 사건 기록입니다.
기본키 선택
(student_id, course_id, semester)처럼 양쪽 FK와 구분 속성을 묶거나, 별도 대리키를 둡니다.
관계 속성 위치
성적, 수강일, 상태처럼 학생도 과목도 아닌 값은 교차 테이블 컬럼으로 들어갑니다.