https://www.istarbucks.co.kr/menu/drink_list.do
스타벅스 홈페이지 메뉴에는 음료, 푸드, 상품, 카드 총 4개 카테고리가 있습니다. 이 중 음료 카테고리를 지금 홈페이지에 있는 것처럼 띄우려면 어떻게 데이터 모델링을 해야하는지 정리해 보겠습니다.
Aquery 툴을 통해 데이터 테이블을 구성했습니다.
모델링할 때 고려해야 할 점은 다음과 같습니다.
- 한 테이블에는 같은(비슷한) 성격의 데이터가 존재해야 합니다.
- 중복값이 되도록 없어야 합니다.
- 대부분이 같은 필드의 값을 갖고 있어야 합니다.
- 테이블명과 필드명은 직관적이어야 합니다.
테이블은 총 5개입니다.
- MainCategories - 대분류
- SubCategories - 중분류
- Sizes - 사이즈
- Themes - 테마
- Products - 제품
MainCategories
- id : 장고에서는 primary key로 기본적으로 부여됨
- name : 카테고리 이름
SubCategories
- id
- name : 카테고리 이름
- main_category : 메인카테고리 어디에 속하는지를 참조
- 카테고리와 제품이 많을 경우 같은 테이블에 모든 계층의 카테고리명을 넣고 코드 테이블과 함께 관리하기도 합니다.
Sizes
Themes
- id
- name : 테마이름
- begin_at : 테마는 시즌별 행사이기 때문에 시작과 끝날짜가 필요합니다.
- end_at : 종료날짜가 지났을 때 테마에 속하는 제품은 표시되지 않도록 설정할 수 있습니다.
- banner_img : 배너이미지
Product
- id
- product_id : 제품코드입니다.
- name_kr : 한글명
- name_en : 영문명
- desc : 간략 설명
- desc_detail : 자세한 설명
- size : 사이즈 표기
- theme : 소속 테마
- alergy : 알러지 내용
- nutrition : 영양 정보
- img_main : 세부 이미지
- img_thumb : 썸네일 이미지
- begin_at : 판매시작 날짜
- end_at : 판매종료 날짜
실제 모델에는 created_at과 updated_at도 포함했습니다. 이와 같이 모델링을 하면 다른 대분류의 제품도 업로드 할 수 있습니다.