반응형
ERD(Entity-Relationship Diagram)에서 관계선 위에 작성하는 authorizes, consents와 같은 텍스트는 Relationship Label(관계 라벨) 또는 **Verb Phrase(동사구)**라고 부릅니다.
Mermaid나 DB 설계 도구에서 이를 명명할 때 공식적으로 강제되는 표준 규격은 없으나, 협업과 가독성을 위해 업계에서 통용되는 5가지 관례가 있습니다.
1. 동사 중심의 명명 (Verb-Oriented)
가장 보편적인 규칙입니다. 엔티티 간의 '행위'나 '상태'를 나타내기 위해 현재형 동사를 사용합니다.
- Active (능동태): 주어(Parent)가 목적어(Child)에게 하는 행위.
- 예: User authorizes Token, App has Platform Key
- Passive (수동태): 가끔 관계의 방향을 명확히 하기 위해 사용하지만, 능동태가 더 권장됩니다.
- 예: Token is_issued_by Client
2. "주어 + 동사 + 목적어" 문장화 (The Sentence Test)
ERD를 글로 읽었을 때 자연스러운 문장이 되어야 합니다.
- 규칙: [Entity A] + [Label] + [Entity B]
- 검증: "User authorizes OAuth Authorization" (사용자가 인가를 승인한다) → O
- 검증: "User Terms Consent" (사용자 약관 동의) → X (명사 위주라 행위가 불분명함)
3. 스네이크 케이스 (Snake Case) 사용
공백이 들어가면 구문 오류가 발생할 수 있는 도구가 많으므로, 단어 사이는 언더바(_)로 연결하는 것이 관례입니다.
- 예: manages, belongs_to, is_assigned_to
4. 관계의 방향성 고려 (Directionality)
보통 부모(1)에서 자식(N) 방향으로 라벨을 작성합니다.
- 소유 관계: has, owns, contains, includes
- 행위 관계: creates, updates, triggers, records
- 참조/매핑: maps_to, refers_to, defines
5. Crowd's Foot(까마귀 발) 표기법과의 조화
작성하신 Mermaid 코드처럼 ||--o{ 같은 기호가 이미 관계의 수(Cardinality)를 보여주므로, 라벨은 비즈니스적 의미를 담는 데 집중해야 합니다.
반응형
'Develop > Database & SQL' 카테고리의 다른 글
| PL/SQL Developer 조회 결과 창 용량 부족한 경우(Export size 100MB) (0) | 2026.02.09 |
|---|---|
| EXISTS / NOT EXISTS 기본 개념 (0) | 2025.12.11 |
| [Oracle] 파티션 추가하기 (0) | 2024.07.30 |
| [Oracle] 서브쿼리 동작 방식을 제어하는 힌트들 (0) | 2024.06.28 |
| [MyBatis] jdbcType 종류 및 문법 (0) | 2024.03.18 |