본문 바로가기

프로그래머스 풀스택 데브코스/데브코스 TIL

웹 풀사이클 데브코스 TIL 30일차

dbdiagram.io

데이터베이스 ERD 설계를 위해 dbdiagram.io 라는 사이트를 이용하였다.
https://dbdiagram.io/d

좋아요 ERD

좋아요는 새로 테이블을 만들어서 관리한다.

Table likes {
  user_id integer
  liked_book_id integer
}

좋아요 누른 유저 아이디와 눌려진 책 아이디를 한꺼번에 관리하면 된다. 이렇게 하면 따로 books table에 좋아요 숫자를 가지고 있지 않고 그때 그때 집계함수로 계산할 수 있다.

장바구니 ERD

Table cartItems {
  id integer
  bookId integer
  count integer
}

장바구니는 ERD를 그릴 때 cartitems 라는 테이블로 만든다. 컬럼은 bookId와 count 가 필요한데 이렇게만 하게 되면 이 테이블에는 PK가 없게된다. 따라서 우리는 cartItemId라는 PK 를 만들어야된다. 카트에 들어있는 item 의 id라는 뜻이다.

배송 ERD

Table delivery {
  id integer
  address varchar
  receiver varchar
  contact varchar
}

배송 정보를 저장할 delivery 테이블이 필요하다. 배송 id ,address, receiver, contact 등의 정보를 저장한다.

주문 ERD

orders 테이블과 orderedBook 테이블이 필요하다. 테이블이 분리되어야 하는 이유는 책이 여러권이면 한테이블에는 표현이 불가능하기 때문이다.

Table orders {
  order_id integer
  delivery_id integer
  total_price integer
  created_at timestamp
  book_title varchar
  total_count integer
}

Table orderedBook {
  order_id integer
  book_id integer
  count integer
}

또한 orderedBook 에는 장바구니 아이디가 아닌 책 아이디가 저장되어야한다. 왜냐하면 장바구니는 주문이 완료되면 삭제될 것이기 때문이다.

후기

ERD를 설계해보고 API를 수정해볼 수 있는 시간이었다.

키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프