데이터 모델링
은 현실세계의 존재하는 데이터를 단순화 시켜서 컴퓨터 세계의 데이터베이스로 변환하는 과정이다. 모델링
은 현실 세계를 추상화
명확화
단순화
시키는 것이다.
그래서 오늘은 스타벅스의 메뉴판을 모델링
할 것입니다.
스타벅스의 메뉴판을 조사하면서 메뉴가 이렇게 많은지 처음 알았습니다. 메뉴는 크게 음료
음식
상품
카드
등이 있지만 오늘은 여기서 음료
와 음식
만 다루려고 합니다.
음료
메뉴를 자세하게 보면 또 작은 카테고리들이 존재합니다. 콜드 브루 커피
에스프레소
블렌디드
티
등이 존재하고 그 안에 이제 우리가 아는 아메리카노, 카페모카 같은 상품들이 있다.
아메리카노
를 클릭해보면 사진이 나오고 설명, 사이즈 별 영양정보, 알레르기 유발요인 등이 있다. 생각해보니 가격
은 없지만 이따가 모델링 때는 허전해서 추가해주었다.
이렇게 현실세계의 상품을 조사했으니 모델링
할 준비는 끝났다.
스타벅스 메뉴 모델링
을 네 단계로 나누어서 설명해보겠습니다.
메뉴
에는 음료
음식
카드
등등 여러가지가 존재한다. 그래서 먼저 menus
라는 첫번째 테이블을 만들어 주었습니다. 그 다음에 음료
나 음식
같은 한 메뉴가 여러 카테고리로 또 나뉘어집니다. 이것을 categories
라는 테이블을 만들어 menus
와 one-to-many
관계로 만들어 주었습니다.
이제 카페 아메리카노, 콜드 브루, 골든 치즈 케이크와 같은 상품들을 모델링
할 차례입니다. 모든 상품은 이름이 있고, 가격, 설명이 필요합니다. 영양정보
는 다양한 요소가 존재해서 따로 테이블을 만들어 주기로 했으며, 알레르기 유발요인
은 한 음료가 여러 알레르기를 유발할 수 있고 한 요인이 여러 음료에 포함될 수 있기 때문에 many-to-many
관계인 테이블을 만들어 주었습니다.
한 상품에 대하여 이미지가 여러장인 경우도 존재 합니다. 그래서 images
테이블을 만들어 one-to-many
관계로 연결해주었습니다.
한 상품에 대해서 각자의 영양정보가 있고 그에 따른 상품 크기가 있습니다. one-to-one
관계로 연결된 두개의 테이블을 만들어 관리합니다.
알레르기 유발요인
은 products
와 allergens
사이를 product_allergens
가 중간에서 서로의 id
를 받아 다리를 이어줍니다.
어려웠는데 이해하는데 많이 도움됐어요 ㅎㅎ 저도 잘보고 갑니다 꾸욱 -! 👍🏻