[TIL] Database 스타벅스 모델링 리뷰

이나현·2021년 7월 13일
0

개발지식

목록 보기
1/14

스타벅스 모델링 리뷰

  • 모델링 할 때 계층 구조를 파악해 진행하는 것이 좋음

전체적인 모델링 방법

1) 최상위 카테고리에 있는 테이블을 하나 만듦 - 'Menu' Table
(음료, 푸드, 상품, 카드, 메뉴이야기)

이때 프론트엔드에서 menu 데이터를 만들었을 때, 백앤드가 반환할 수 있음

2) 서브 카테고리를 저장할 수 있는 테이블을 만들고 - 'categories' table
(콜드브루, 에스프레소, 프라푸치노 등)

테이블 명은 복수로 정함

1. one to many 관계

  • 음료와 서브 카테고리를 연결하도록 categories table에 fk를 만듦

menu Table과 categories table의 관계는 1대다 관계

  • 음료 하위에 있는 'drinks' table을 만듦
    (한글이름, 영문이름, 설명)
  • 자식 테이블이기 때문에 부모랑 연결할 수 있는 fk를 만듦
  • categories와 drinks table은 1대다 관계
  • category_id라는 fk(foreign key)를 만듦

images Table

images 테이블은 확장성을 위해 하나의 테이블로 만드는 것이 좋음

  • drinks 테이블과 1대다 관계
  • 확장성: 이미지가 많아질 수 있기 때문에 따로 분리해서 관리해야함

3. one to one 관계

nutritions Table

1) tall 사이즈만 있다고 하면, one to one 관계

drink 테이블에서 nutrition_id를 가지고 있어도 됌

2) 사이즈가 다양하다면 one to many 관계

nutritions Table은 테이블 분리를 해도 되고 안해도 됌

  • table이 하나로 합쳐져 있다면, 하나의 테이블로 상세페이지 전체를 설명할 수 있음

2. many to many 관계

하나의 음료수가 여러개의 알러지를 가지고 있고, 하나의 알러지가 여러개의 상품에 포함될 수 있음
1) allergies Table - (우유, 땅콩, 대두 등)
2) Drinks_allergies 중간테이블 생성

ps) row를 대표하는 pk 값은 필수

보완점

1) one to one / one to many/ many to many 관계 보완

  • many to many 관계가 아닌 one to many 관계가 있었음

2) type을 다양하게 쓰기

  • 문자의 경우 VARCHAR만이 아닌 text 형식으로 사용해도 됌
  • 소수점인 경우, DECIMAL을 사용

3) Image table 사용

  • image table을 사용하는 것이 일반적인 방법이라 img 테이블 만들기
profile
technology blog

0개의 댓글