[MySQL] DB 명명 규칙 정리

오솔·2022년 3월 14일

MySQL

목록 보기
1/1
post-thumbnail

📝1. 공통

  • 소문자를 사용한다.
  • 단어를 임의로 축약하지 않는다.
    👉 ex) register_date (o) / reg_date (x)
  • 가능한 약어의 사용을 피한다. 사용해야 하는 경우, 약어 역시 소문자로 사용한다.
  • 동사는 능동태를 사용한다.
    👉 ex) register_date (o) / registered_date (x)

📝2. 테이블

  • 단수형을 사용한다.
  • 이름을 구성하는 각각의 단어를 underscore로 연결되는 snake case를 사용한다.
  • 교차 테이블(many-to-many)의 이름에 사용할 수 있는 직관적인 단어가 있다면 해당 단어를 사용한다. 적절한 단어가 없다면 관계를 맺고 있는 각 테이블의 이름을 "and" 또는 "has"로 연결한다.

👉 ex)
articles, movies : 복수형
vip_members: 약어도 예외 없이 소문자 & 단어 연결에 underbar 사용
articles_and_movies: 교차 테이블을 "and"로 연결

📝3. 컬럼

  • auto increment 속성의 PK를 대리키로 사용하는 경우, "테이블 이름_id"의 규칙으로 명명한다.
  • 이름을 구성하는 각각의 단어를 snake case를 사용한다.
  • foreign key 컬럼은 부모 테이블의 primary key 컬럼 이름을 그대로 사용한다.
  • self 참조인 경우, primary key 컬럼 이름을 그대로 사용한다.
  • 같은 primary key 컬럼을 자식 테이블에서 2번 이상 참조하는 경우, primary key 컬럼 이름 앞에 적절한 접두어를 사용한다.
  • boolean 유형의 컬럼이면 "_flag" 접미어를 사용한다.
  • date, datetime 유형의 컬럼이면 "_date" 접미어를 사용한다.

👉 ex)
article_id, movie_id: "테이블이름" + "_id"
complet_flag: boolean 유형의 컬럼
issue_date: 날짜 유형의 컬럼

📝4. INDEX

  • 이름을 구성하는 각각의 단어를 hyphen으로 연결하는 kebab case를 사용한다.
  • 접두어
    unique index: uix
    spatial index: six
    index: nix
    "접두어"-"테이블 이름"-"컬럼 이름"-"컬럼 이름"

👉 ex) uix-account-login-email

📝5. FOREIGN KEY

  • 이름을 구성하는 각각의 단어를 hyphen으로 연결하는 kebab case를 사용한다.
  • "fk"-"부모테이블 이름"-"자식 테이블 이름"

👉 ex)
fk-movie-article: article테이블이 movie테이블 참조
fk-admin-notice-1, fk-admin-notice-2: notice 테이블이 admin테이블을 2회 이상 참조하여 넘버링

📝6. VIEW

  • 접두어 "v"를 사용한다.
  • 기타 규칙은 테이블과 동일하다.

👉 ex) v_privileges

📝7. Stored Procedure

2018/06/01 - [MySQL/Stored Procedure] - [MySQL/Stored Procedure] 명명 규칙

📝8. FUNCTION

  • 접두어 "usf"를 사용한다.
  • 이름을 구성하는 각각의 단어를 underscore로 연결하는 snake case를 사용한다.

👉 ex) usf_random_key

📝9. TRIGGER

  • 이름을 구성하는 각각의 단어를 underscore로 연결하는 snake case를 사용한다.
  • 접두어
    tra: after 트리거
    trb: before 트리거
    "접두어"_"테이블 이름"_"트리거 이벤트"

👉 ex)
tga_movies_ins: after insert 트리거
tga_movies_upd: after update 트리거
tgb_movies_del: before delete 트리거




출처: https://purumae.tistory.com/200

profile
지극히 개인적인 내 개발스터디 공간

0개의 댓글