
ERD 설계 마무리

테이블 설명
- users: 사용자 정보를 저장하는 테이블입니다.
- 필드:
id, username, password, created_at
id는 사용자 식별자입니다.
- books: 책 정보를 저장하는 테이블입니다.
- 필드:
id, title, category_id, format, isbn, summary, description, author, pages, index, price, likes, pub_date
category_id는 category 테이블의 id와 연결되어 있으며 책의 카테고리를 나타냅니다.
- category: 책의 카테고리를 저장하는 테이블입니다.
- 필드:
id, name
- 각
id는 books 테이블의 category_id와 연결됩니다.
- likes: 사용자가 좋아요를 누른 책 정보를 저장하는 테이블입니다.
- 필드:
user_id, liked_book_id
user_id는 users 테이블의 id와 연결되어 있으며, liked_book_id는 books 테이블의 id와 연결됩니다.
- cartItems: 사용자가 장바구니에 담은 책 정보를 저장하는 테이블입니다.
- 필드:
id (PK), bookId (FK), count
bookId는 books 테이블의 id와 연결됩니다.
- delivery: 배송 정보를 저장하는 테이블입니다.
- 필드:
id, address, receiver, contact
receiver는 users 테이블의 사용자 이름을 나타내며, 배송지 정보를 관리합니다.
- orders: 주문 정보를 저장하는 테이블입니다.
- 필드:
id, delivery_id, total_price, created_at, book_title, total_count
delivery_id는 delivery 테이블의 id와 연결됩니다.
- 주문에 대한 정보(총 가격, 날짜, 주문된 책 제목, 수량)를 저장합니다.
- orderedBook: 특정 주문에 포함된 책 정보를 저장하는 테이블입니다.
- 필드:
order_id, book_id, count
order_id는 orders 테이블의 id와 연결되며, book_id는 books 테이블의 id와 연결됩니다.
테이블 간 관계
- users ↔ likes:
users.id와 likes.user_id 간 일대다 관계(하나의 사용자가 여러 책에 좋아요를 누를 수 있음).
- users ↔ delivery:
users.username과 delivery.receiver 간의 관계(배송 정보를 통해 사용자가 누구인지 알 수 있음).
- books ↔ likes:
books.id와 likes.liked_book_id 간 일대다 관계(하나의 책을 여러 사용자가 좋아할 수 있음).
- books ↔ cartItems:
books.id와 cartItems.bookId 간 일대다 관계(하나의 책이 여러 장바구니에 담길 수 있음).
- books ↔ orderedBook:
books.id와 orderedBook.book_id 간 일대다 관계(하나의 책이 여러 주문에서 포함될 수 있음).
- orders ↔ orderedBook:
orders.id와 orderedBook.order_id 간 일대다 관계(하나의 주문이 여러 책을 포함할 수 있음).
- orders ↔ delivery:
orders.delivery_id와 delivery.id 간 일대일 관계(하나의 주문에 대해 하나의 배송 정보가 있음).
- books ↔ category:
books.category_id와 category.id 간 다대일 관계(하나의 카테고리에 여러 책이 포함될 수 있음).
정리
users와 likes, cartItems, delivery 간의 관계를 통해 사용자가 책을 좋아요하거나, 장바구니에 담거나, 배송 받을 수 있는 정보가 연결됩니다.
books는 여러 테이블과 연결되어 있어 사용자 행동, 주문 및 카테고리 정보를 통합적으로 관리할 수 있습니다.
orders와 orderedBook 테이블을 통해 주문 내역과 주문된 책 목록을 관리하며, 이를 delivery와 연결하여 배송 정보까지 추적할 수 있습니다.
Express-generator 프로젝트 구조 요약
- bin/www
- 포트 번호 등의 웹 서버 설정을 정의하는 파일
.env 파일과 함께 설정 값을 관리하며, 에러 처리 및 기타 설정을 수행
- node_modules
- Node.js 및 Express에 필요한 모듈들이 설치되는 폴더
- public
- 정적 파일들(
images, javascripts, stylesheets)을 저장
- 정적인 콘텐츠 예: 로고, 회사 소개 페이지 등
- routes
- 각 경로를 담당하는 모듈들이 들어 있는 폴더
- 라우팅 로직을 구현하는 모듈들로, 요청에 따라 어떤 로직을 수행할지 결정
- 자바의 Controller와 유사한 역할
- views
- 클라이언트에게 HTML 코드로 "화면"을 전달하는 파일들
- app.js
- Express 서버의 시작점
- URL에 따라 라우팅을 해주는 역할
- package.json
- 설치된 모듈 이름, 버전 등의 정보가 작성된 파일
프로젝트 셋팅

- 다음과 같이 디렉토리 셋팅후, 기초적인 API들 틀만 잡아주었다.