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 |