저 또한 처음 SQL을 시작할 때에는 제 마음대로 이름을 적곤 했지만,
시간이 지나면 지날수록 정말 보기 힘들다는 것을 알게 되죠.
물론 sysobjects 명령어를 사용해서 가져오면 되지만,
명명규칙을 정하고 나면, Object 이름만 봐도 무엇인지 알 수 있게 됩니다.
회사마다 차이점은 있겠지만, 일반적인 개체 명명 방법은 이렇습니다.
1. Object 앞에 접두사 또는 뒤에 접미어 사용 : Upper Case
2. Camel Case 와 _ 사용
Object |
접두어 또는 접미어 |
Example |
User Table |
TB_ |
TB_Order |
User Function |
UDF_ 또는 UF_ |
UDF_Get_PackSize |
Stored Procedure |
USP_ 또는 UP_ |
USP_Select_AllPacket |
View |
VW_ 또는 UV_ |
VW_UserHistory |
Partitioned View |
PV_ |
PV_OrginalCustomer |
Trigger |
TRI_ / TRU_ / TRIU_ etc |
TRI_TB_Order |
Primary Key |
PK_ |
PK_TB_User |
Foreign Key |
FK_ |
FK_TB_User_TB_Order_001 |
Constraint |
CT_ |
CT_TB_User_MEM_ID |
User Defined Type |
UT_ 또는 UD_ |
UT_REM_001 |
Index (Nonclustered) |
IDX_ 또는 IX_ |
IX_TB_User_001 |
접두어 또는 접미어 이외에는 보통 다음과 같은 규칙을 적용합니다.
1. 테이블에 속해 있는 경우 테이블명 표시
- FK는 주/종 관계를 표시
- 제약조건은 해당 컬럼명 표시 : _CK / _DF / _UN 등의 접미어 표현 또는 아예 이를 접두사로 사용하는 경우도 많습니다.
- Index : Clustered Index인 경우 Primary Key가 아니면 _C 를 붙이기도 합니다.
- Trigger : Insert / Update / Delete 등의 행위를 보통 접두어에 포함합니다.
2. 함수나 프로시저 등은 그 성격을 그대로 표시
- 함수는 동사(Action) + 반환(Return) 으로 표시하거나 그 반대로 표시 : 정하기 나름
- 프로시저는 업무의 성격이나 로직의 Action을 담는 경우가 많습니다.(CRUD)
è UP_Select_~~~ / UP_Delete_~~~ / UP_Make_~~~
정말 회사마다 차이점이 있습니다. 이게 정답은 아니니… 오해 마시길.~