TIL 71 | Database 모델링

hyounglee·2020년 10월 19일
1

Developer

목록 보기
8/9

블로그 마켓 커머스 플랫폼인 브랜디에서 기업협업을 진행하고 있다. 이번 협업에서는 프론트엔드에 더하여 플라스크 Flask 까지 도전을 하게 되었다. 백엔드와 함께 일하면서도 내가 받는 데이터나 API는 어떻게 만들어질까 궁금했는데, 이번 기회에 한번 제대로 알아보자 싶었다.

오늘은 브랜디의 어드민 페이지에서 사용되는 데이터를 가지고 모델링 작업을 했다. 우리팀 백엔드 분들이 적극적으로 모델링을 알려주셔서 생각보다 빠르게 이해할 수 있었다!

Database - RDBMS, 왜 테이블들을 연결할까?

ERD(Entity-Relationship Diagram)

convention

1. Table Title

  • 복수형, 소문자로 짓는다.
  • 연결 테이블의 경우 snake_case로 적는다.
  • 상품을 구체적으로 적기 보다 (clothes, drinks) 상품이라고 명시한다. (products)

2. id

  • 별도의 이름 대신에 id 라고만 적자

3. type

  • 이미지의 타입은 파일이 아닌 url이다.

4. name

  • 테이블 제목에 명시된 내용은 중복을 피하자! ~~(제목 : sellers / 요소 : sellers_code!)~~
  • 축약하지 말고 상세하게 적자 ~~(영문이름 : english_name, 한글이름 : korean_name)~~

오늘 수정님이랑 같이 만들어본 ERD의 일부!

테이블마다 id 값은 필수적으로 존재해야 한다! PK 는 Primary Key, AI는 Auto Increment(알아서 +1하여 유일무이한 값을 만들어 줌). FK는 Foreign Key, Null은 Null 값이 존재할 수 있음을 의미한다.

예를 들어, 할인금액을 따로 표기할 수도 있는 경우, 할인이 되지 않은 상품에는 Null 값을 표기한다. 반면 할이 금액을 따로 표기하지 않고 정가에 더해 할인율이라는 요소를 추가하여 0을 입력할 수도 있다. 정답은 없다! 선택하기 나름.

항상 테이블이 어떻게 사용될지를 고민하고, 연관이 되어 같은 규칙이 적용되거나 변경이 되는 값들을 테이블로 묶어 연결해주는 것이 새로웠다! 좋은 데이터 형태란 무엇인가에 대해 끊임없이 고민해야 함을 느꼈다...

profile
(~˘▾˘)~♫•*¨*•.¸¸♪ ❝ 쉽게만 살아가면 재미없어 빙고 .ᐟ ❞

2개의 댓글

comment-user-thumbnail
2020년 10월 25일

오마이갓 풀스텍 갓지형

1개의 답글