핵심 판단
관계 속성도 먼저는 1:N 연결 위에 붙어 있습니다. 그 값이 과목 한 행에 자연스럽게 붙으면 N쪽 컬럼에 넣고, 관계 자체를 따로 관리해야 하면 별도 테이블로 분리합니다.
공유 출발점

속성은 교수-과목 연결에 붙는다

담당학기와 강의실은 교수도 과목도 아닌, 두 개체를 잇는 관계의 정보입니다.

교수
1쪽
담당 관계
담당학기 강의실
과목
N쪽
1:N 변환의 기본은 그대로 유지됩니다. 교수의 PK는 결국 과목 쪽에서 FK로 참조되고, 관계 속성은 그 연결을 어디에 저장할지 결정하면 됩니다.
판단 기준: 관계 속성이 과목 행 하나에 자연스럽게 붙는가?
방법 1. N쪽 테이블에 함께 포함
속성이 적고
관계가 과목 행과 함께 움직일 때
과목 한 행이 "누가, 어느 학기, 어느 강의실에서 맡는지"를 같이 표현하면 가장 단순합니다.
courses
id PK
prof_id FK -> professors.id
name
semester
room
방법 2. 관계 자체를 별도 테이블로 분리
속성이 많거나
연결 정보를 따로 관리할 때
교수-과목 배정을 독립된 행으로 만들면 관계 속성을 확장하기 쉽고, 배정 단위의 식별자도 명확해집니다.
course_assignments
prof_id FK -> professors.id
course_id FK -> courses.id
semester
room
PK (prof_id, course_id, semester)