1:1 관계 변환 판단 순서

먼저 참여 여부를 보고, 그다음 FK 위치를 정합니다

한쪽이 반드시 관계에 참여한다면 그쪽 테이블에 FK를 두는 것이 자연스럽습니다. 모든 행에 값이 들어가므로 불필요한 NULL을 만들지 않습니다.

핵심 원칙 전체 참여(Total Participation) 쪽에 FK를 두면 관계가 항상 존재하므로 저장 구조가 더 깔끔합니다.
1

참여 형태를 먼저 확인

예시 관계: 사원과 주차공간은 1:1이지만, 두 개체가 관계에 참여하는 강도는 다를 수 있습니다.

사원
주차공간이 없을 수도 있음
→ 부분 참여
주차공간
반드시 어떤 사원에게 배정됨
→ 전체 참여
2

전체 참여 쪽에 FK 배치

이 예시에서는 주차공간이 관계에 항상 들어오므로, FK는 주차공간 테이블에 두는 편이 맞습니다.

parking_spaces id PK employee_id FK UNIQUE ← 여기 배치
왜 이쪽인가? 모든 주차공간은 반드시 사원과 연결되므로 `employee_id`가 비지 않습니다.
결과 NULL 칸이 줄어들고, 1:1 제약도 `UNIQUE`로 함께 표현하기 쉽습니다.
3

양쪽 모두 부분 참여라면

둘 다 관계가 없을 수 있으면 어느 쪽에 FK를 두어도 이론적으로 가능합니다.

선택 기준 더 자주 조회하거나 조인하는 쪽에 FK를 둡니다.
의미 이때는 참여 제약보다 접근 패턴이 실제 설계 기준이 됩니다.
빠른 기억법

전체 참여가 보이면 그쪽에 FK, 양쪽이 모두 부분 참여면 접근 빈도가 높은 쪽을 고릅니다.