1. Database Name
1.1. 규칙
- Database Name은 서비스를 의미하는 Unique한 Name을 사용함
- Database Name은 파스칼표기법을 따른다.
1.2. 표기 방식
예) Common, OnBid, Auction
2. Table Name
2.1. 규칙
- Table Name 은 파스칼표기법을 따른다.
- 유형 구분은 배제한다.
2.2. 표기 방식
예)
회원테이블 : Member
결제이력 : PaymentHistory
접속로그 : ConnectionLog
게시판 : Board
3. Column Name
3.1. 규칙
- 물리 명은 카멜표기법을 따른다.
- 논리 명을 사용자가 알 수 있는 정도에서 명사 및 명사형동사를 사용함.
- 모든 Column은 Dictionary List에
등록된 약어 사전 및 자료 사전을 기초로 작성함
- Dictionary List에 등록되지 않은 약어는 책임자의 동의 하에 등록함.
- 기본적으로 의미하는 단어 전체를 사용하나 동의 하에 단축하여 사용할 수 있다.
- schema 를 포함한 외부 데이터의 경우에는 원형 컬럼 형태를 유지한다.
3.2. 표기방식
예)
이름 : name
삭제유무 : useYn
등록일자 : registDate
환불일자 : refundDate
순번 : seq – (단축)
3.3. 순서규칙
- 기본적으로 관계형 모델에서 열(Column)의
순서는 의미가 없음.
그러나, 물리적인 형태로 생성되어
관리될 때에는 보다 효율적인 저장공간의 관리를 위해 다음 순서에 따라 우선순위를 결정함
- Primary Key가 우선함
- Primary Key내에서는 Index 의미에 따라 순서를 결정함
- Not Null Columns이 우선함
- Not Null Columns 내에서는 Foreign Key, Attributes 순서로 함
- Null Columns 내에서는 다음의 규칙에 따라 순서를
결정함
- Fixed Length Columns이 우선함(Date,Number,Char순)
- Smaller Length Column이 우선함
4. Index Name
4.1. 규칙
- 기본은 Sql Management 에서
생성되는 네이밍을 그대로 유지한다.
- 별도로 사용할 경우는
- MSSQL의 경우 클러스터드 인덱스와 넌 클러스터드 인덱스를 구분하여 작성함.
클러스터드 인덱스 IXC_를 사용하며, 넌
클러스터드 인덱스는 일반 인덱스 명 룰을 따름.
- 테이블에 인덱스가 하나만 존재할 경우 일련번호를 사용하지 않아도 됨.
4.2. 표기 방식
예) IX_<테이블명>{<일련번호 00>}
5. Primary Key Name
5.1. 규칙
- Index Name 의 기본을 유지하며 접두어를 PKX_사용한다.
5.2. 표기방식
예) PKX_<테이블명>
6. Foreign Key Name
6.1. 규칙
- Index Name 의 기본을 유지하며 접두어를 FK_ 사용한다.
- 일련번호 : 1 ~ 9
6.2. 표기방식
예) IX_<테이블명>{<일련번호 00>}
7. Stored Procedure Name
7.1. 규칙
- 파스칼 표기법을 따른다.
- 유형 구분은 배제한다.
- 단일 테이블 sp는 테이블명 뒤에 해당 기능 약어(Select : S, Update : U , Delete : D, Create : C, Insert : I ) 를 표기한다.
- 복합 sp는 대표하는 대상과 기능을 의미하는 단어를 테이블명 대신 사용하고 ( Process : P) 를 붙인다.
- SELECT 를 주로 사용하는 복합 sp의 경우는 S로 표기
7.2. 표기방식
예)
회원 정보 입력, 수정, 삭제 : MemberIUD
회원탈퇴처리 : MemberWithdrawP
결제처리 : PaymentProcessP
결제취소처리 : PaymentCancelP
결제상세정보 : PaymentDetailS
8. Function Name
8.1. 규칙
- 파스칼 표기법 사용.
- 앞에 “Fn” 을 붙이고 대상 기능명을 작성한다.
8.2. 표기방식
예) Fn<기능명>
PnuCode 반환 : FnGetPnuCode
9. Table Trigger Name
9.1. 규칙
- 기본 규칙은 Function Name 과
같고 접두어만 “Tr” 사용한다.
9.2. 표기방식
예) Tr<기능명>
파일 입력 시 트리거 : TrFileInsert
10. View Name
10.1. 규칙
- 기본 규칙은 Table Name 과
같으며 접두어로 “View”를 사용한다.
10.2. 표기방식
예) View<뷰명>
회원가입 통계뷰 : ViewMemberJoinStatistics
11. Check 제약조건
11.1. 규칙
- 길이는 제한이 없으며 영문 대문자를 사용함
- 기존의 명칭룰에 해당하는 접미사를 사용하지 않고, 예외적으로
접두어 CK_를 사용한다.
일반적으로 CHECK와 DEFAULT 제약조건은
특정 테이블에 한정시켜서 작성하기 보다는 시스템 전반에 걸쳐서 사용이 가능하므로
예외규정을 둔다.
11.2. 표기방식
예) CK + ‘_’ + <의미있는 CHECK명>
이메일 체크 : CK_EMAIL
성별 체크 : CK_SEX
12. Default 제약조건
12.1. 규칙
- 길이는 제한이 없으며 영문 대문자를 사용함
- 기존의 명칭룰에 해당하는 접미사를 사용하지 않고, 예외적으로
접두어 DF_를 사용한다.
일반적으로 CHECK와 DEFAULT 제약조건은
특정 테이블에 한정시켜서 작성하기 보다는 시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을
둔다
12.2. 표기방식
예) DF + ‘_’ + <의미있는 DEFAULT명>
Null String Default ? DF_NULLSTR
0(Zero) Default ? DF_ZERO
13. Query
13.1 규칙
- 예약어 및 SQL 구문은 대문자를 사용한다.
- alias 는 컬럼이나 테이블의 약어를 소문자로 사용한다,
- 들여쓰기는 첫번째 “ “ 기준으로 작성하고 , 는 앞에 표기한다.
- Create, Insert, Update, Delete 에 해당하는 작업에는 트랜잭션 구문을 사용하며 ERROR_CODE, ERROR_MESSAGE OUTPUT 파라메터로 처리 유무를 반환한다.
- 기본적으로 정적 쿼리로 작성하며 동적 쿼리 작성을 피한다.
13.2 표기방식
- SampleXXXX.sql 참조
14. DataType
14.1. 규칙
- 사용자 입력, Unicode 데이터 가능성이 있는 데이터 컬럼 : NVARCHAR(N)
- Y / N 류의 flag성 컬럼 : CHAR(1)
- 일시 : Datetime
- 일자 : VARCHAR(10)
'DB > mssql' 카테고리의 다른 글
[function] 문자열에서 숫자만 뽑아내기 (0) | 2017.02.24 |
---|---|
[function] 숫자에 억,만 단위 붙이기 (0) | 2017.02.24 |
[function] 구분자가 있는 문자열 테이블로 만들기 (0) | 2017.02.24 |
[mssql] paging limit offset (0) | 2017.02.07 |
(String Concatenation) (Transact-SQL) 예외 케이스 (0) | 2016.12.17 |