이전에 만든 API를 통해 ERD를 작성하였다.
강의를 수강하면서 이걸 어떻게 구현하지 하는 고민을 하게했던 주문서 작성과 주문내역 부분을 따로 cartItems와 orderItems 테이블로 만들어 관리하는것으로 이부분에 대한 이해를 높일 수 있었다.
###추가수정

DBML코드는 다음과 같다.
indexes { (A, B) [unique] }DBML의 문법 중 하나로 여기서는 A와B가 딱 한개씩만 존재하는 유일성을 보장한다는 의미다.
AB한쌍 왜에는 존재하지 않도록 만들어준다.
Table users {
id integer [primary key]
email varchar
name varchar
password varchar
}
Table categories {
id integer [primary key]
categorie varchar
indexes {
(id, categorie) [unique]
}
}
Table books {
id integer [primary key]
title varchar
category_id integer
format varchar
isbn varchar
summary text
description text
author varchar
pages integer
index text
price integer
like_count integer
pubDate timestamp
}
Table likes {
user_id integer
book_id integer
indexes {
(user_id, book_id) [unique]
}
}
Table cartItems {
id integer [primary key]
user_id integer
book_id integer
count integer
indexes {
(user_id, book_id) [unique]
}
}
Table delivery {
id integer [primary key]
user_id integer
address varchar
receiver varchar
contact varchar
}
Table orders {
id integer [primary key]
user_id integer
delivery_id integer
total_price integer
created_at timestamp
// 주문에 대한 상세 상품 정보는 order_items 테이블로 관리
}
Table order_items {
id integer [primary key]
order_id integer
book_id integer
count integer
}
ref { books.category_id > categories.id}
ref { delivery.user_id > users.id}
ref { cartItems.user_id > users.id }
ref { cartItems.book_id > books.id }
ref { likes.user_id > users.id }
ref { likes.book_id > books.id }
ref { orders.user_id > users.id }
ref { orders.delivery_id > delivery.id }
ref { order_items.order_id > orders.id }
ref { order_items.book_id > books.id }
첫번째
두번째
API만들고 ERD를 만드는 수업을 들어서 그런가 확실히 이해가 빠르게 되고, ERD를 짜면서 내가 작성한 API가 어떤 부분을 수정할지, 잘한지를 더 명확히 알 수 있었다.