반응형
개발을 하다보면 항상 이름을 정하는 것이 어렵더군요. MariaDB 의 테이블이나 필드 명을 정하는 규칙이 있을까해서 찾아보고 스트랩 했어요.
[자료출처 : https://purumae.tistory.com/200]
공통
- 소문자를 사용한다.
- 단어를 임의로 축약하지 않는다.
- register_date (O) / reg_date (X)
- 가능하면 약어의 사용을 피한다.
- 약어를 사용해야 하는 경우, 약어 역시 소문자를 사용한다.
- 동사는 능동태를 사용한다.
- register_date (O) / registered_date (X)
TABLE
- 단수형을 사용한다.
- 이름을 구성하는 각각의 단어를 underscore 로 연결하는 snake case 를 사용한다.
- 교차 테이블 (many-to-many) 의 이름에 사용할 수 있는 직관적인 단어가 있다면 해당 단어를 사용한다.
- 적절한 단어가 없다면 relationship을 맺고 있는 각 테이블의 이름을 "_and_" 또는 "_has_" 로 연결한다.
- 예
- article, movie : 단수형
- VIP_member : 약어는 대문자 & 단어의 연결에 underbar를 사용
- article_and_movie : 교차 테이블을 "_and_" 로 연결
COLUMN
- auto increment 속성의 PK를 대리키로 사용하는 경우, "테이블 이름"_id 의 규칙으로 명명한다.
- 이름을 구성하는 각각의 단어를 underscore 로 연결하는 snake case 를 사용한다.
- foreign key 컬럼은 부모 테이블의 primary key 컬럼 이름을 그대로 사용한다.
- self 참조인 경우, primary key 컬럼 이름 앞에 적절한 접두어를 사용한다.
- 같은 primary key 컬럼을 자식 테이블에서 2번 이상 참조하는 경우, primary key 컬럼 이름 앞에 적절한 접두어를 사용한다.
- boolean 유형의 컬럼이면 "_flag" 접미어를 사용한다.
- date, datetime 유형의 컬럼이면 "_date" 접미어를 사용한다.
- 예
- article_id, movie_id : "테이블 이름" + "_id"
- complete_flag : boolean 유형의 컬럼
- issue_date : 날짜 유형의 컬럼
INDEX
- 이름을 구성하는 각각의 단어를 hyphen 으로 연결하는 snake case 를 사용한다.
- 접두어
- unique index : uix
- spatial index : six
- index : nix
- "접두어"-"테이블 이름"-"컬럼 이름"-"컬럼 이름"
- 예
- uix-account-login_email
FOREIGN KEY
- 이름을 구성하는 각각의 단어를 hyphen 으로 연결하는 snake case 를 사용한다.
- "fk"-"부모 테이블 이름"-"자식 테이블 이름"
- 같은 부모-자식 테이블에 2개 이상의 foreign key가 있는 경우, numbering합니다.
- 예
- fk-movie-article : article 테이블이 movie 테이블을 참조
- fk-admin-notice-1 / fk-admin-notice-2 : notice 테이블이 admin 테이블을 2회 이상 참조하여 numbering
VIEW
- 접두어 "v"를 사용한다.
- 기타 규칙은 TABLE과 동일
- 예
- v_privilege
Stored Procedure
2018/06/01 - [MySQL/Stored Procedure] - [MySQL/Stored Procedure] 명명 규칙
FUNCTION
- 접두어 "usf"를 사용한다.
- 이름을 구성하는 각각의 단어를 underscore 로 연결하는 snake case 를 사용한다.
- 예
- usf_random_key
TRIGGER
- 이름을 구성하는 각각의 단어를 underscore 로 연결하는 snake case 를 사용한다.
- 접두어
- tra : AFTER 트리거
- trb : BEFORE 트리거
- "접두어"_"테이블 이름"_"트리거 이벤트"
- 예
- tga_movie_ins : AFTER INSERT 트리거
- tga_movie_upd : AFTER UPDATE 트리거
- tgb_movie_del : BEFORE DELETE 트리거
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
반응형
'프로그래밍' 카테고리의 다른 글
[스크랩] JDK 8 인스톨 없이 설치하기 / Portable JDK 생성하기 (0) | 2020.07.31 |
---|---|
[스크랩] Intellij output 한글 깨지는 문제 (0) | 2020.07.31 |
[스크랩] mariaDB 계정 생성 및 권한 주기 (0) | 2019.03.26 |
[iOS] 스위프트(Swift) 에서 스토리보드(StoryBoard) 삭제하기 (0) | 2017.07.18 |
[윈도우] MFC 부모 다이얼로그가 자식 다이얼로그 아래에만 위치하는 현상 (0) | 2017.06.28 |