Blog

Db 설계 규칙

스키마 이름 규칙 (Schema Naming Rule) #

스키마란?

Database의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합을 말한다.

  • 설계
    • 대문자로 작성한다.
    • Database Profile을 의미하는 이름으로 작성한다.
    • Short Name의 길이는 최대 8자리를 넘기지 않게 한다.
    • Short Name은 각 현장마다 고유(Unique)한 이름을 사용한다.
  • 표기 방식 예제
    • PARKING, MILEAGE, …

테이블 이름 규칙 (Table Naming Rule) #

  • 설계
    • 대문자로 작성한다.
    • 테이블임을 표시하기 위해 **앞 또는 뒤에 TB_ || _TB**를 붙여준다.
    • 의미있는 테이블 명은 3단어까지 사용할 수 있다.
    • 단어와 단어 사이에는 '_‘를 사용한다.
    • 각 단어는 최대 8자리까지 사용하도록 한다.
    • 앞 또는 뒤에 구분명을 붙여준다.
      • 구분명 ex) USER**_HISTORY**, USER**_TRIGGER**, …
  • 표기 방식 예제
    • TB_USER, TB_USER_HISTORY, …

컬럼 이름 규칙 (Column Naming Rule) #

  • 설계
    • 대문자로 작성한다.
    • 단어와 단어 사이에는 '_‘를 사용한다.
    • 각 단어는 최대 8자리까지 사용하도록 한다.
    • 약어의 조합으로 구성된다.
    • 컬럼의 의미를 한 눈에 알 수 있는 *접미사를 사용한다.
  • 표기 방식 예제
    • COMMON_CD, USER_NM, MEMBER_NO, …

대표적인 접미사 정리

접미사 내용 설명
_CD CODE 주로 코드 테이블의 코드, 각종 코드에 사용된다.
숫자나 문자로 이루어진 코드에 해당되며, 숫자나 문자의 각 부분이 의미가 있는 경우에 코드를 사용한다.
대부분 PK에 해당한다.
_NM NAME 코드에 대한 명칭에 주로 사용된다.
논리명이 이름, 명칭인 경우에 해당된다.
예) 사용자이름 USER_NM, 자원명 RES_NM,중분류 코드명 DVSN_NM, 메뉴명 MENU_NM
_NO NUMBER 숫자로만 이루어진 경우, 주로 논리명이 번호인 경우에 사용.
예) 주민등록번호 JUMIN_NO, 조문번호 JO_NO,게시물번호 BOARD_NO
_SQ SEQUENCE 오라클의 Sequence, MSSQL의 Identity의 경우에 사용한다.
숫자 일련번호로 PK를 설정할 경우 SQ를 사용한다.
MSSQL의 Identity의 경우 주로 _ID를 사용하는 경우가 많은데, 사용자 아이디 – USER_ID의 ID와 의미가 틀려 SQ를 사용한다.
예) 작업번호 WORK_SQ, 이력번호 HISTORY_SQ
_ID ID 주로 사용자 아이디의 경우에 사용한다.
예) 사용자아이디 USER_ID, 등록자아이디 REG_ID
_DT DATE 날짜의 경우 사용한다.
DT는 날짜 타입이 DATE형인 경우에만 사용한다.
보통 날짜의 경우 CHAR(8)형으로 20050718식으로 저장을 많이 한다.
이런 경우에는 _YMD를 사용한다.
예) 삭제일자 DEL_DT, 변경일자 CHG_DT
_YMD YYYYMMDD 날짜의 경우 사용한다.
날짜 타입이 CHAR 인경우 사용한다.
년월일인 경우 _YMD를 사용하고, 년월형식으로 CHAR(6)로 저장될 경우 _YM을 사용한다.
년도, 월, 일자 인경우에는 YEAR, MONTH, DAY등의 컬럼명을 사용한다.
_GB 구분 구분값을 나타낼 때 사용한다.
가령 사용자구분 필드가 있을 때 일반사용자, 내부사용자가 있다면 별도의 사용자 그룹테이블로 분리하여 사용할 경우 GROUP_CD가 필드명이 되지만, 코드상에서 일반(G), 내부(I)로 사용하기로 결정했다면 GROUP_GB 필드명을 사용하면 된다.
예) 통계구분 STAT_GB
_ST STATE 상태값, 주로 CHAR(1) 형식을 사용한다.
예) 사용자 상태 USER_ST
_FL FLAG 플래그 값, 종종 삭제하지 않는 테이블에 삭제플래그를 많이 사용한다.
값은 0/1 이나 Y/N를 많이 사용한다.
예) 삭제여부 DEL_FL, 요청여부 REQ_FL
_ORD ORDER 순서를 나타낼 때 사용한다.
예) 컬럼순서 COLUMN_ORD
_CNT COUNT 예) 조회수 VIEW_CNT
_AMT AMOUNT 예) 재고량 STOCK_AMT
_SUM SUM 예) 분기합계 QTR_SUM, 년도합계 YEAR_SUM