데이터베이스 명명 규칙 고찰

최신 개발언어들은 명명 규칙이 통일된 느낌인데 비해 데이터베이스는 컨벤션이 통일된 느낌이 들지 않는다. 아마도 꽤 오래된 언어이고 벤더마다 특성도 있어서 현대적인 명명 규칙에 어긋나는 경우가 많은 것 같다.

SQL은 대소문자 구분이 없다는 것과 대부분 개발툴이 인텔리센스를 지원하고 있고 시각적인 구분과 검색의 편리성을 기초로 기초적인 명명규칙 말고 몇가지를 제언해 본다.

대문자 vs 소문자 vs 혼용

SQL은 대소문자를 구분하지 않아서 가장 호불호가 많은게 대소문자 정의인 듯 하다. SQL 문법은 대문자로 스키마는 소문자로 사용하는 경우가 최근 흐름인 듯 하지만 대문자로 통일하는 것이 장점이 더 많다고 생각되는데 소문자로 통일하는 것은 아직도 고민중이다.

  • 혼용해서 사용하면 타이핑이 불편함
  • 거의 대부분 툴에서 SQL문과 스키마가 컬러로 구분되어 표현되므로 혼용 불필요
  • Quartz 등 제공되는 DDL이 대부분 대문자로 되어 있음

풀네임 vs 약어

대부분의 현대적인 개발언어는 풀네임을 지향한다. 풀네임을 사용한다면 테이블과 컬럼 모두 풀네임을 사용하는게 좋지만 접두어, 접미어가 코드 가독성이나 코드검색 등에 유용하여 테이블은 접두어, 컬럼은 접미어를 사용한다.

  • 소스의 가독성을 위해 풀네임 사용
  • 접두어는 테이블(뷰, 함수)명에서만 사용하고 접미어는 컬럼명에서만 사용

접두어와 접미어

SQL은 대소문자를 구분하지 않아서 언더스코어 네이밍이 일반적이다. 테이블은 사용자 정의 테이블의 구분과 DDL이 제공되는 프레임워크와 구분을 하고 SQL문 작성시 네임스페이스의 가독성을 위해 ‘TB_‘를 사용하고 컬럼의 접미어는 최소한만 사용하면 인텔리센스 타이핑이나 검색 등에 유용하다.

  • 테이블명은 ‘TB_‘의 접두어를 사용
  • 컬럼명은 최소한의 접미어(_NM, _NO, _SN, _DT, _YN, _CNT)만 사용

Copilot의 질문답변 게시판 스키마… 이렇게 작성하지 말자!!

copilot_mysql_schema

Tags: MySQL
Share: Facebook X (Twitter)