티스토리 뷰

데이터베이스를 설계하면서 DDL(Database Definition Language)을 작성할 때, 명확하고 일관된 명명 규칙(네이밍 룰, Naming Rule)을 정해두지 않으면, 이후에 DB 규모가 확장되면서 DML(Data Management Language)을 다뤄야 할 때 곤란해질 수 있다. 그러나 네이밍 룰이 여러 종류이다보니 어떤 것을 선택해야 할지 정하는 것도 쉽지 않다.


테이블 명명

  • 테이블명을 모델명과 일치 시킴

    회원관리 프로그램을 개발하면서 회원을 나타내는 객체나 변수의 이름을 user로 정했다고 가정해보자. 이 때 회원의 정보를 저장하기 위한 테이블의 이름에도 일관성을 유지하는 것이 좋다. 이 경우 users를 테이블 이름으로 정할 것을 추천하며, members, people 등을 사용하는 것은 좋지 않다.

  • 복수형을 사용해야 하는 이유

    테이블은 레코드들의 집합이므로 단수형 보다는 복수형으로 표현하는 것이 현실의 모델화를 맞게 구현한 것이다.

  • 소문자 사용

    DBMS의 종류나 설정에 따라 대소문자를 구분하지 않는 것에 대비하기 위해, 또는 개발 언어에 대한 의존성을 낮추기 위해 카멜 표기법 등의 특정 언어의 코딩 컨벤션을 따르지 않는다. 또한 해당 객체가 테이블임이 자명함에도 불구하고, 굳이 테이블임을 나타내기 위해 tb와 같은 접두어를 붙이는 등의 헝가리안 표기법을 사용하는 것도 권장하지 않는다.

  • 단어가 길어질 경우 의미 구분을 위한 띄어쓰기를 위해 언더스코어 사용 (단, 사전에 등록된 복합명사는 띄어쓰기를 하지 않음)

    filename (O), file_name (X)
    firstname (X), first_name (O)

  • 예제
    CREATE TABLE users (...);
    CREATE TABLE business_users (...);
    


테이블의 필드 명명

  • 유일키는 언제나 'id'로 명명
  • 소문자 사용
  • 의미 구분을 위한 띄어쓰기를 위해 언더스코어 사용 (단, 사전에 등록된 복합명사는 띄어쓰기를 하지 않음)
  • 예제
    users

    id

    address

    office_address


조인 테이블 명명

  • 조인하고자 하는 테이블들의 이름을 연결
  • 알파벳 순서 적용
  • 복수형 사용
  • 소문자 사용
  • users와 business_users를 조인하는 테이블에 대한 명명 예제
    CREATE TABLE business_users_users (...);
    

4. 조인 테이블의 필드 명명

  • 유일키는 언제나 'id'로 명명
  • 소문자 사용
  • 외래키는 테이블의 단수형 + '_id'
    users table → user_id
    business_users → business_user_id
  • 예제
    business_users_users

    id

    user_id

    business_user_id

5. 인덱스 명명

  • 인덱스 키 타입과 인덱스 대상 테이블 및 필드의 이름을 언더스코어로 구분

    <index or key type>_<table name>_<column 1>_<column 2>_<column n>

  • 인덱스 키 타입

    PK_ 프라이머리 키
    UK_ 유니크 키
    UX_ 유니크 인덱스
    IX_ 논클러스터드 논유니크 인덱스

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함