본문 바로가기

Develop/Database & SQL

ERD 관계 라벨 명명 규칙

반응형

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)를 보여주므로, 라벨은 비즈니스적 의미를 담는 데 집중해야 합니다.

반응형