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를 수정해볼 수 있는 시간이었다.
키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프
'프로그래머스 풀스택 데브코스 > 데브코스 TIL' 카테고리의 다른 글
웹 풀사이클 데브코스 TIL 32일차 (0) | 2024.01.02 |
---|---|
웹 풀사이클 데브코스 TIL 31일차 (0) | 2023.12.29 |
웹 풀사이클 데브코스 TIL 29일차 (0) | 2023.12.27 |
웹 풀사이클 데브코스 TIL 28일차 (0) | 2023.12.26 |
웹 풀사이클 데브코스 TIL 27일차 (0) | 2023.12.26 |