설명은 places
부터 시계방향으로 설명할 것이다.
places
와 users
가 두 축이다.places
는 맛집이다. 맛집에 필요할 데이터를 넣었다.maximum_number_of_subscriber
는 최대 예약 인원 수인데, reservations
의 number_of_people
가 이를 초과하면 안되기에 만들었다.able_to_reserve
는 예약 기능을 지원하는지 아닌지를 판별하려고 만들었다.closed_temporarily
는 휴업 중인지 아닌지를 판별하기 위해 만들었다.menus
는 places
와 many-to-many
관계이다.prices
테이블을 생성하여 외부 키로 연결하였다.prices
는 500원부터 100만원까지 500원 단위로 구분한 테이블이다. 해당 메뉴의 가격을 넣기 위해 넣었다.categories
, images
, regions
는 places
와 one-to-many
관계이다.(places
가 many
)social_platforms
는 kakao, naver 같은 소셜 로그인 기능
을 지원하는 소셜 플랫폼이다.users
에서 kakao_id
를 넣지 않고 분리한 이유는 추후 확장성을 고려해서이다.users
는 회원이다.date_of_birth
를 넣은 이유는 추후 술집을 넣을 수도 있을 것 같아 넣었다.timelines
는 10:00
부터 23:30
까지 30분 간격으로 넣은 테이블이다. 몇 시에 예약할지 30분 단위로 나누어 놓았다.images
는 places
와 one-to-many
관계인데, images
가 many
이므로 (한 맛집에 여러 사진) 테이블 관계를 바꾸었다.platforms
테이블을 새로 생성, 일종의 중간 테이블로, platform_id
에 해당 플랫폼의 id
가 들어 간다.(카카오의 경우 kakao의 id)reservations
의 name
은 무엇에 대한 이름인지 헷갈려 '~의 이름으로 예약하다'를 의미하는 under_name
로 변경timelines
의 time
형태를 varchar
으로 time
로 수정하였다.platform
의 platform_id
가 중복 사용되어 serial_number
로 수정하였다.