DB에서의 명명규칙

양시준·2022년 3월 21일
0

TIL

목록 보기
14/21

공통

소문자

테이블, 뷰, 컬럼을 비롯한 모든 식별자들은 소문자로 작성하는 게 좋다. (예약어와 구분짓기 위해서)

용어

사용하는 용어들 역시 실생활에 쓰이는 단어보다 실무에서 주로 쓰이는 단어를 사용한다.

용어 사전을 이용하거나 실무, 예제에서 사용하는 단어를 사용

약어

Object 이름들은 약어를 사용하기 보다는 풀네임을 사용하는게 좋다.

대부분의 SQL 데이터베이스는 30자 이상의 Object 이름을 설정할 수 있도록 지원하고 있다.

약어를 사용할 수 밖에 없다면?

어쩔 수 없이 약어를 사용해야한다면, 공통적으로 사용하는 약어를 사용하는게 좋습니다.

공통적으로 사용하는 약어는 약어 사전을 이용해 찾는다.

snake_case

여러 글자가 합쳐져 만든 복합어구에는 _(snake_case)를 사용하는 게 좋다.

오브젝트 (테이블, 뷰, ...)

단수 명사

table, view 들은 단수의 명사를 가지는게 좋다.

  1. 일반적인 경우 다른 테이블과의 관계를 맺을 때 1개의 row와 관계를 맺는다.
  2. 어플리케이션에서 이름을 명명할 때 혼란이 없다.

Key Fields - 개인차이

primary key

단일 컬럼 primary key라면 이름을 id로 짓는게 좋습니다. id는 명확하고 JOIN 할 때나 관리할 때 편리하는 장점이 있지만 이는 여러 단체에서 주장하는 게 다르기도 해서 개인의 선택에 맞긴다.

foreign key

foreign key 필드는 {참조되는 테이블}_id의 이름이 좋습니다. 이 역시 짧고, 단순하며, 명확하기 때문이다.

Prefixes and Suffixes - 비추

이는 오브젝트나 컬럼의 타입에 따라 다른 접두사를 붙이는 것을 말하는 데 요즘에는 추천하지 않는다. (테이블이면 TB, 뷰면 VM , 프로시져면 SP_ )

Relation Type 선행

이게 어떤 Object인지 알 수 있다는 장점이 있지만 만약 뷰의 경우 테이블로 전환하게 되면 SQL 쿼리 등 수정해야 하는 부분이 많이 생기게 된다.

Data Type 행

마찬가지로 타입을 앞에 적어주는 것을 말한다.

Relation Type 선행 방식보다 더 추천하지 않는데, 컬럼의 타입은 오브젝트보다 더 자주, 쉽게 변경되기 때문이다.

INDEX

이름을 구성하는 각각의 단어를 hyphen 으로 연결하는 snake case 를 사용한다.

  • unique index : uix
  • spatial index : six
  • index : nix

"접두어"-"테이블 이름"-"컬럼 이름"-"컬럼 이름"

TRIGGER

이름을 구성하는 각각의 단어를 underscore 로 연결하는 snake case 를 사용한다.

  • tra : AFTER 트리거
  • trb : BEFORE 트리거

자동 생성되는 이름

ORM을 이용하다보면 이름이 자동으로 생성되는 경우가 있다.

제약조건이나 Index이 대표적인 예 인데, 이런 것들 또한 이름을 제대로 지어 줄 필요가 있다.

여담

사실 단체에서 정한 규칙이 있다면 그 규칙을 따르는 게 좋다.

또한 위 규칙에서 추천하지 않는 Prefixes and Suffixes 역시 사용하는 게 좋을 상황이 있을 것이다.

즉, 모든 상황에 맞는 명명 규칙은 없으니 각자의 상황에 따라서 적절한 명명 규칙을 정하고 이용하는 것이 훨씬 중요하다.

참고

https://launchbylunch.com/posts/2014/Feb/16/sql-naming-conventions/

profile
야크 털 깎기와 러버덕 디버깅을 좋아하는 개발자

0개의 댓글