스타벅스 데이터 모델링 with dbdiagram.io

설탕·2022년 1월 4일
0

dbdiagram.io를 이용해 스타벅스 음료 페이지의 데이터 구조를 모델링했다.
모델링 대상: 음료, 음료 설명, 카테고리, 영양정보, 알러지, 음료 이미지, 신상 여부

dbdiagram.io 스타벅스 데이터 모델링

  • 음료음료 설명일대일 대응하므로 하나의 테이블로 만들었다.

  • 카테고리는 한 카테고리가 여러 음료와 연결되는 일대다 관계이다. 따라서 카테고리 테이블을 만들고 음료 테이블 안에 Foreign Key를 부여했다.

  • 영양정보는 처음에 영양정보 테이블을 따로 만들고 음료와 다대다로 연결했었다. 하지만 영양성분 중 포화지방 2g짜리 음료만 따로 모아볼 필요는 없기 때문에, 영양정보를 하나의 데이터로 음료 안에 넣어도 무방하다는 설명을 들었다. 따라서 영양정보 테이블을 만들고 음료와 일대일 관계로 연결했다. 음료 테이블 안에 column으로 넣어도 된다.

  • 알러지는 하나의 음료에 여러 가지 알러지가 포함될 수 있고, 하나의 알러지가 여러 음료에 포함될 수 있으므로 다대다 관계이다. 따라서 알러지 테이블을 따로 만들고, 알러지와 음료를 연결하는 중간 테이블을 만들어 중간 테이블에 알러지와 음료 각각의 Foreign Key를 부여했다.

  • 음료 이미지는 처음에 음료와 일대일 대응이라 생각하여 음료 테이블 안에 column으로 넣었으나, 하나의 음료 안에 여러 이미지가 포함될 수 있다는 설명을 듣게 되었다. 따라서 이미지 테이블을 따로 만들었다. 이때는 음료가 1이고 이미지가 n인 일대다 관계이기 때문에 음료의 Foreign Key를 이미지 테이블에 부여했다.

  • 신상 여부는 처음에 신상 여부 테이블을 따로 만들고 음료와 일대다 관계로 연결하려 했다. 그러나 신상 여부는 어차피 0과 1로 구분되는 간단한 데이터인 데다, 각각의 음료가 가지고 있는 데이터이기 때문에 일대일 관계로 연결해도 됐다. 따라서 신상 여부는 음료 테이블 안에 column으로 넣었다.

1 to many 관계에서 Primary Key는 1, Foreign Key는 many이다.
따라서 many to many 관계에서 중간 테이블(junction table)을 만들면 중간 테이블은 양쪽에서 Foreign Key를 부여받고, 양쪽으로 1 to many 관계가 형성되는 것이다.

profile
공부 기록

0개의 댓글