[DB설계]공통코드는 어떻게 만들까?(예시)

💡 핵심 요약 (TL;DR)

공통코드는 어떻게 만들까?(예시)의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 공통코드란 데이터 속성에 사용되는 공통적인 값을 코드로 표현하는 것이다.

회사에서 스터디를 진행하고있다. 스터디속에 부장님의 특급 강의도 함께 있어서 정말 많이 배우고있다.
스터디 넘 재밌다!!!
스터디동안에 각자 만들 사이트를 하나씩 정했다. 나는 백신후기웹사이트!!
DB설계를 보여드리고 피드백은 받았다.

내가 작성한 리뷰테이블

내가 처음 작성한 리뷰테이블이다.
백신종류와 6가지정도 되는 증상이 함께 들어가 있다.

  • 백신종류
백신종류 값
AZ 아스트라제네카
DO 모더나
PH 화이자
JA 얀센
  • 증상(강도보단 유무를 받기로 함)
    1. 발열유무
    2. 통증(근육통,두통,몸살)유무
    3. 기침유무
    4. 부정출혈유무
    5. 오한유무
    6. 설사유무

이렇게 내가 짠 프로그램을 설명드리니 부장님은 아래와 같은 피드백을 주셨다.

💬 부장님: 공통코드로 만들어보세요

공통코드?

공통코드란 데이터 속성에 사용되는 공통적인 값을 코드로 표현하는 것이다.
공통코드를 사용하면 좋은 장점은 무엇일까?

  • 공통코드 장점
    1. 데이터 유연성: 현재 4개의 백신종류에서 추가 승인 받은 백신이 생겼다면? 공통코드에서는 코드 하나만 추가하면 끝이기때문에 유연성이 높다.
    2. 데이터 명칭의 일관성: 아스트라제네카를 누군가는 아스트라 제네카라고 띄어 쓸 수 도 있다. 코드를 통해 명칭의 일관성을 유지하여 데이터 정합성을 높일 수 있다.

내가 작성한 공통코드 테이블

열심히 구글링해서 아래와 같이 공통코드를 구성해보았다. 아래와 같은 궁금증이 생겼다.

  • 의문점
    1. 백신타입을 공통코드로 써야하는 이유가 뭘까? 어차피 한 컬럼에 한 개의 값만 들어가는데..굳이..
    2. 공통코드를 사용한다면 증상이 1개 이상 있는 사람은 어떻게 db에 넣지? -> 리뷰테이블에서 증상부분들을 하나로 합치고 Varchar값으로 콤마로 구분해서 넣을까? -> 그럼 어떻게 보여주지? 보여줄땐 split해서 보여주면 될까?

고민하다가 팀장님께 물어봤는데 바로 해결책을 알려주셨다.
팀장님은 역시 천재…빛과 소금😀

😎 의문점에 대한 팀장님의 명쾌한 조언

💬 김팀장님:
테이블은 성격이 다른 컬럼은 다른 테이블로 나누어야합니다.
현재 리뷰테이블은 성격이 다른 컬럼들이 한 곳에 모여있어서 여러 의문점이 생기신 것 같아요.
컬럼의 성격에 따라 분류해보세요
증상은 성격이 다르니까 다른 테이블로 뺀 뒤 reviewId와 함께 PK를 걸면 좋을거예요. 일대다의 관계.
공통코드테이블을 위처럼 작성하면 명칭이 헷갈릴 수 있어요. 코드그룹, 코드, 코드명, 사용여부, 정렬순번을 기본적으로 사용하는 게 어때요?

공통코드 테이블

내가 고민했던 모든 것은 테이블을 다시 설계하면 다 해결되는 문제였다!
팀장님의 조언을 토대로 테이블을 다시 나누었다.

#DB설계

[DB설계]공통코드는 어떻게 만들까?(예시)

https://sowon-dev.github.io/2021/09/14/210915DB-commonCodeGrup/

Author

sowon-dev

Posted on

2021-09-14

Updated on

2026-10-21

Licensed under

CC BY 4.0

댓글