V-RIS 개발일지 (2) DB 설계

KHJ·2022년 4월 12일
0

V-RIS 개발일지

목록 보기
2/15

ER Diagram을 그리기 위해 Quick DBD를 이용했다. 생성하는 동시에 표로 만들어줘 보기 편하고, db별로 export와 import 하기 편해 사용했다.


원래 유료이지만, 무료버전을 이용한 후기를 블로그에 500단어 이상 작성 후 promo@quickdbd.com 에 블로그 주소를 첨부한 메일을 보내면 1년동안 유료 버전을 사용할 수 있다.


생성한 테이블은 총 4개이다.


user 테이블

  • 회원가입할 때 입력한 유저들의 정보를 저장한다.
  • 패스워드는 암호화를 위해 text 형으로 설정했다.
  • 비건과 논비건의 리뷰를 따로 보여주기 위해 회원 정보에 비건/논비건 정보를 저장했다.
    처음에는 bool 형으로 받은 뒤 비건인 사람들만 단계를 나눠 enum으로 저장하려고 했으나 mysql에 enum 타입이 적절하지 않다는 글을 보고 논비건과 비건의 단계를 int형으로 저장하는 방식을 사용하려고 한다.
    ( 0. 논비건 / 1. 비건 / 2. 락토 / 3. 오보 / 4. 락토오보 / 5. 페스코 / 6. 폴로 )
    ( 참고 : 8 Reasons Why MySQL's ENUM Data Type Is Evil )

restaurant 테이블

  • 오픈 api에서 받아온 식당의 목록을 저장하는 테이블이다.
  • 처음 계획은 오픈 api에 존재하는 식당은 실시간으로 받아오고, 이용자가 직접 추가한 식당만 DB에 저장하는 방식으로 하려고 했으나
    1. 음식점 검색이나 리뷰 작성등을 구현할 때 식당이 api에 존재하는지 DB에 존재하는지 알 수 없어 둘 다 검사해야 함
    2. api 업데이트 주기가 6개월임

      등을 고려하여 api에 존재하는 비건 메뉴 식당들을 db에 모두 저장 후 사용하기로 했다.
  • 대신 6개월에 한 번 api 업데이트를 하는 과정에서 사용자가 직접 추가한 식당이 api에도 추가되어 중복되는지 중복 검사를 진행할 예정이다.

review 테이블

  • 사용자가 등록한 리뷰를 저장하는 테이블이다.
  • 줄 글로 입력하는 리뷰가 아닌 키워드 선택 리뷰이므로 유저 idx, 식당 idx와 함께 리뷰 카테고리를 만들었다. 리뷰 카테고리에는 키워드 리뷰에 번호를 매겨 어떤 리뷰를 선택했는지 저장할 예정이다.

favorite 테이블

  • 즐겨찾기한 식당을 저장할 수 있는 테이블이다.
  • 유저의 idx와 식당의 idx를 참조한다.

0개의 댓글