핵심은 한 행이 다른 한 행과 한 번만 연결되도록 만드는 것입니다. 보통은 FK + UNIQUE를 쓰고, 항상 같이 쓰면 병합하고, 관계 자체에 정보가 있으면 별도 관계 테이블을 둡니다.
|
방법 1. FK 추가
가장 일반적
|
방법 2. 테이블 병합
항상 함께 쓰일 때
|
방법 3. 관계 테이블
예외적 선택
|
|
|---|---|---|---|
| 대표 구조 | users(id, name, email) profiles( id PK, user_id FK UNIQUE, bio, avatar ) |
users( id, name, email, bio, avatar ) |
user_profiles( user_id FK UNIQUE, profile_id FK UNIQUE, created_at ) |
| 언제 적합한가 | 기본 선택지. 두 개체는 분리해 두되, 한쪽이 다른 쪽을 정확히 하나만 참조하게 만들고 싶을 때. |
속성이 적고 생명주기가 같다. 회원과 프로필을 따로 다룰 이유가 거의 없을 때. |
관계 자체를 기록해야 한다. 연결 시각 같은 속성이 있거나, 직접 연결을 분리해 관리해야 할 때. |
| 1:1 보장 방식 | FK + UNIQUE가 핵심입니다. 같은 |
행을 하나로 합침으로써 별도 연결 자체가 사라집니다. 조인 없이 한 테이블에서 바로 조회됩니다. |
양쪽 FK 모두 UNIQUE로 묶습니다. 거의 쓰지 않지만 관계에 의미가 생기면 구조가 분명해집니다. |