개발/MySQL

[MySQL] 명명 규칙 (Naming Convention)

여름청춘 2024. 7. 19. 13:36

 

공통

  • 소문자 사용
  • 축약어 사용 최소화
    • 축약어를 사용하는 경우에도 소문자를 사용

 

테이블

  • snake_case를 사용
  • 복수형 명사 사용
    • 복수형을 사용하는 이유
      • 테이블이름과 컬럼이름이 같은 경우 방지  (ex. coupon_code 테이블의 coupon_code컬럼)
      • 예약어와의 중복방지 (ex. orders / order는 order by 와 중복)
  • many-to-many 관계에 사용하는 교차 테이블
    • 적절한 명사가 없다면 두 테이블을 and로 연결
      • movies 테이블과 genres 테이블 사이의 교차 테이블 ⇒ movies_and_genres

 

컬럼

  • snake_case를 사용합니다.
  • 특별한 이유가 없다면 Auto Increment 속성의 대체키 (Surrogate Key)를 Primary Key로 사용하고, 컬럼의 이름은 “테이블 이름의 단수형” + “_id” 형식으로 합니다.
    • movies 테이블의 PK 컬럼: movie_id
  • BIT 유형의 컬럼은 “is” 또는 “has” 와 같은 접두사를 붙입니다.
    • 완료 여부: is_completed
    • 닉네임이 있는지 여부: has_nickname
  • 날짜 또는 시간이 포함된 날짜 컬럼
    • date” 접미사를 붙입니다.
    • 어떤 날짜인지를 표현하는 동사는 과거 분사를 사용하지 않고 기본형을 사용합니다.
    • 생성 일자
      • created_date (X)
      • create_date (O)

 

인덱스

  • 접두사”, “테이블 이름”, “컬럼 이름”의 순서로 kebab-case를 사용하여 연결합니다.
  • 접두사
    • Unique Index : ux
    • Full Text Index : fx
    • Spatial Index : sx
    • 기타 Index : ix
  • movies_and_genres 테이블의 genre_id 컬럼에 만든 인덱스
    • ix-movies_and_genres-genre_id

 

[출처]

https://purumae.tistory.com/200