DB를 구성하는데 꽤나 어려웠다. 메뉴/옵션 부분은 쉽게 구성할 수 있었지만, 주문 부분이 상당히 까다로웠다. 주문 - 주문 메뉴까지는 SQLD나 DB 수업 때 배웠던 내용으로 쉽게 할 수 있었지만, 주문 메뉴 - 주문 옵션을 연결 짓는 것이 골치가 아팠다.

원래는 메뉴에 카테고리가 있는 것처럼, 옵션에도 카테고리를 추가하여 옵션 그룹을 구분지을 수 있게 하려고 했다. 그렇게 하다 보니 주문 메뉴 - 주문 옵션 그룹 - 주문 옵션 사이 연결을 어떻게 해야될지 모르겠어서, 우선은 옵션 카테고리를 제거하고 일반적인 관계로 진행했다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bfbb9e3a-ba66-4921-9a61-fe4c4e1e5914/dddd.png

유저

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9f7edf24-2e8b-4f49-a3da-9dd65a05b092/Untitled.png

유저 테이블은 1개의 매장이 아닌 복수개의 매장으로 확장할 수 있게 만들기 위해, 임시적으로 만든 테이블이다. 키오스크 시스템에 로그인을 하고 난 후, 관리자 권한이 있으면 매출 통계, 메뉴 관리, 품절 관리 등 가게 전반적인 관리를 할 수 있게끔, is_super 필드를 만들었다.

카테고리

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0fc25f90-1e8a-4228-bf24-3d5a48c8d231/Untitled.png

카테고리 목록 테이블 Categories) 은 개별 메뉴의 대분류 샐러드, 음료 를 저장하기 위한 테이블이다

메뉴

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e1939f40-93b8-4c26-8c6d-f1b9a55de2f7/Untitled.png

메뉴 목록 테이블은 개별 메뉴 샐러드 의 이름 , 가격 , 품절 여부 , 설명 , 사진을 저장하기 위한 테 이블이다 . 어떤 메뉴가 어떤 카테고리에 속하는 것이기 때문에 , 카테고리 정보를 가져오기 위해 카테고리 목록 테이블 Categories) 의 ID 를 FK 로 갖는다

옵션 관계

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e1c6451e-0e79-4558-a341-9d4e49ea9aac/Untitled.png

옵션 관계 테이블은 메뉴 목록 테이블과 옵션 목록 테이블의 다대다 연결을 방지하며 연결해주기 위한 매개 역할을 하는 테이블이다. 이를 통해 메뉴 목록 테이블(Menus)과 옵션 관계 테이블(Option_relation)이 1:N 관계, 옵션 목록 테이블(Options)과 옵션 관계 테이블(Option_relation)이 또 다시 1:N 관계가 된다.