관계와 FK¶
엔터티 간의 관계를 생성하고, 바커 표기법에 따라 시각화하는 방법을 설명합니다.
관계 생성¶
기본 방법¶
- **소스 엔터티**의 PK 컬럼 핸들을 마우스로 드래그합니다
- **타겟 엔터티**로 연결합니다
- 연결 방식에 따라 동작이 달라집니다:
| 연결 대상 | 동작 |
|---|---|
| 타겟 컬럼 핸들 | 해당 컬럼을 FK로 전환 |
| 타겟 엔터티 면 | FK 컬럼을 자동 생성 (소스 PK 기준) |
FK 이름 충돌
동일 이름의 컬럼이 이미 존재하면, _2, _3 등의 접미어가 자동으로 추가됩니다.
검증¶
관계 생성 시 다음 조건이 검증됩니다:
- 소스 엔터티에 PK가 존재해야 합니다
- 자기참조 관계도 지원됩니다
- 검증 실패 시 토스트 알림으로 원인을 안내합니다
관계선 표기법¶
ThinkERD는 **바커 표기법(Barker's Notation)**으로 관계를 시각화합니다.
식별 관계 vs 비식별 관계¶
| 표현 | 의미 |
|---|---|
| 실선 | 식별 관계 — FK가 PK의 일부 |
| 점선 | 비식별 관계 — FK가 일반 속성 |
카디널리티 (Cardinality)¶
| 표현 | 의미 |
|---|---|
| Crow's Foot | 다(Many) 쪽 |
| 단일 선 | 일(One) 쪽 |
선택성 (Optionality)¶
| 표현 | 의미 |
|---|---|
| 실선 앞 마커 | 필수 (Mandatory) |
| 점선 앞 마커 | 선택 (Optional) |
관계선 라우팅¶
관계선은 **직교 경로(Manhattan Routing)**로 자동 라우팅됩니다.
- 엔터티 이동 시 관계선이 자동으로 재계산됩니다
- 둥근 모서리가 적용되어 가독성이 좋습니다
- **자기참조 관계**는 4개 코너에 분산 배치됩니다
배타 관계 (Exclusive Arc)¶
두 관계 중 하나만 성립하는 **배타적 관계**를 표현합니다.
- 상단 툴바에서 배타 모드 활성화
- 마우스로 두 관계선을 **가로질러 스윕**합니다
- 성공 시 두 관계선 사이에 **아치(Arc)**가 표시됩니다
배타 관계의 의미
예를 들어, 결제 엔터티가 신용카드 또는 계좌이체 중 하나에만 연결되어야 할 때 사용합니다.
→ 배타 관계 상세: 배타 관계
관계 편집¶
관계선을 우클릭 → **편집**으로 관계 속성을 수정합니다:
- 카디널리티 변경
- 식별/비식별 전환
- 관계 삭제
관계 삭제¶
관계선 우클릭 → **삭제**를 선택합니다. 삭제 전 확인 다이얼로그가 표시됩니다.
FK 컬럼
관계를 삭제해도 FK 컬럼은 자동으로 삭제되지 않습니다. 필요 시 수동으로 제거하세요.