DB 명명 규칙

오성민·2022년 10월 16일
0

CS

목록 보기
1/10
post-thumbnail

혼자서 프로젝트를 진행하면서 DB를 설계하고 구축하려고 하니 한 가지 의문이 생긴 것이 있었다.

바로 테이블과 같은 것에 이름을 어떻게 정해야하는지 모르겠었고, 과연 이름을 정할 때에 관례 같은 것이 있는지가 궁금했었다. 그래서 내가 구글링하여 찾은 내용을 정리하여 포스팅하려고 한다.

common convention

스네이크 표기법

테이블을 표현하려고 한다면 여러 단어를 써야하는 경우가 자주 생긴다.
이럴 때에는 여러 표기법 중 스네이크 표기법으로 단어를 구분한다.

명명 규칙(Naming convention)

1. Camel case

  • 각 단어를 구분할 때에 대문자를 사용한다.
  • 단, 이름의 가장 처음은 소문자를 사용한다.
  • 주로 변수나 함수명에서 많이 사용하는 방법임

2. Snake case

  • 각 단어를 언더바를 통하여 구분한다.
  • 주로 DB에서 많이 사용한다.

3. Pascal case

  • 가장 첫 글자를 포함하여 모든 단어를 대문자로 시작하여 구분한다.
  • 주로 클래스명을 정할 때에 많이 사용한다.

4. Kebab case

  • 모두 소문자로 사용하고 각 단어를 - 를 사용하여 구분한다.
  • url, html, css에서 주로 사용한다.

prefix와 postfix를 사용하지 않기

학교에서 android app 수업을 들을 때 button 변수를 작성할 때에 _btn을 통해서 버튼 변수인 것을 표현해주었다.
하지만 해당 방법은 옛날 방법이라 요즘에는 사용을 잘 해주지는 않는다고 한다.
하지만 사용을 해주어도 문제가 되지는 않는듯하다. 나는 이것이 편하니 가능하면 이것을 사용해주어야겠다.

table naming

소문자 사용하기

단수 사용하기

복수를 사용할 경우 나중에 이상한 테이블 명으로 이어질 우려가 있어서 복수를 사용하기 보다는 단수를 사용하여 테이블을 표현하는 것이 좋다.

단어를 줄이지 않기

예를 들어 infomation을 info로 작성을 하게 되면 혼란을 야기할 수 있다.
이러한 이유로 가능하면 단어를 줄여서 작성을 하지 않아야한다.

colum naming

기본키

가장 명확하게 기본키를 파악하기 좋게 id라는 이름을 사용하는 것이 가장 좋다

외래키

외래키는 부모 테이블에 기본키를 가져와서 사용을 해야하는 것이다.
이러한 이유 때문에 외래키 열의 이름을 정할 때에는 부모테이블_id라고 명명을 하여 가독성을 높이고 보다 그 의미를 명확하게 할 수 있다. ex) user_id

데이터 열

나중에 처리해야하는 데이터의 구조가 복잡해져서 join을 사용하고 select 한 것을 조건으로 넣을 수도 있다.
이러한 경우에 서로 다른 테이블끼리 같은 이름의 열을 가지고 있어도 실제로는 문제가 되지 않지만 가독성을 떨어트리고 혼란을 야기할 수 있다.
그렇기 때문에 테이블 이름을 정하는 것처럼 최소한의 단어를 고유한 이름을 정해주는 것이 가장 좋다.

날짜

데이터를 DB에서 관리를 하다보면 어떤 한 시점을 기록해야하는 경우가 생긴다.
예를 들어 어떤 한 회원이 내가 만든 웹 사이트에 회원가입을 했다고 하면 우리는 그 회원의 데이터를 기록하고 이런 데이터가 생긴 날짜를 기록하고, 수정하였다면 그 날짜 또한 기록을 해야할 것이다.
이런 경우에 {날짜 설명}_date를 사용하여 가독성을 높인다.

결론

구글링을 하다보니 역시나 정답은 없다.
만약 나 혼자서 모든 설계부터 개발까지 완료를 한다면 내가 편한 방법을 사용하면 된다.
하지만 혼자가 아닌 협업을 해야한다면 모든 구성원이 동의한 규칙을 따라 설계부터 개발을 하면 될 것이다.
어디까지나 이러한 규칙은 가독성을 높이고 혼란을 줄이기 위해서 사용하는 것이라고 생각한다.
그렇기 때문에 위에 내용 또한 보통 어떤 규칙을 사용하나 정리를 한 것이다.

profile
풀스택을 지향하는 개발자

0개의 댓글