프로젝트 디렉토리 셋팅, ERD 설계 마무리

ssomae·2024년 10월 1일

DevCourse

목록 보기
25/29
post-thumbnail

ERD 설계 마무리

테이블 설명

  1. users: 사용자 정보를 저장하는 테이블입니다.
    • 필드: id, username, password, created_at
    • id는 사용자 식별자입니다.
  2. books: 책 정보를 저장하는 테이블입니다.
    • 필드: id, title, category_id, format, isbn, summary, description, author, pages, index, price, likes, pub_date
    • category_idcategory 테이블의 id와 연결되어 있으며 책의 카테고리를 나타냅니다.
  3. category: 책의 카테고리를 저장하는 테이블입니다.
    • 필드: id, name
    • idbooks 테이블의 category_id와 연결됩니다.
  4. likes: 사용자가 좋아요를 누른 책 정보를 저장하는 테이블입니다.
    • 필드: user_id, liked_book_id
    • user_idusers 테이블의 id와 연결되어 있으며, liked_book_idbooks 테이블의 id와 연결됩니다.
  5. cartItems: 사용자가 장바구니에 담은 책 정보를 저장하는 테이블입니다.
    • 필드: id (PK), bookId (FK), count
    • bookIdbooks 테이블의 id와 연결됩니다.
  6. delivery: 배송 정보를 저장하는 테이블입니다.
    • 필드: id, address, receiver, contact
    • receiverusers 테이블의 사용자 이름을 나타내며, 배송지 정보를 관리합니다.
  7. orders: 주문 정보를 저장하는 테이블입니다.
    • 필드: id, delivery_id, total_price, created_at, book_title, total_count
    • delivery_iddelivery 테이블의 id와 연결됩니다.
    • 주문에 대한 정보(총 가격, 날짜, 주문된 책 제목, 수량)를 저장합니다.
  8. orderedBook: 특정 주문에 포함된 책 정보를 저장하는 테이블입니다.
    • 필드: order_id, book_id, count
    • order_idorders 테이블의 id와 연결되며, book_idbooks 테이블의 id와 연결됩니다.

테이블 간 관계

  1. userslikes:
    • users.idlikes.user_id 간 일대다 관계(하나의 사용자가 여러 책에 좋아요를 누를 수 있음).
  2. usersdelivery:
    • users.usernamedelivery.receiver 간의 관계(배송 정보를 통해 사용자가 누구인지 알 수 있음).
  3. bookslikes:
    • books.idlikes.liked_book_id 간 일대다 관계(하나의 책을 여러 사용자가 좋아할 수 있음).
  4. bookscartItems:
    • books.idcartItems.bookId 간 일대다 관계(하나의 책이 여러 장바구니에 담길 수 있음).
  5. booksorderedBook:
    • books.idorderedBook.book_id 간 일대다 관계(하나의 책이 여러 주문에서 포함될 수 있음).
  6. ordersorderedBook:
    • orders.idorderedBook.order_id 간 일대다 관계(하나의 주문이 여러 책을 포함할 수 있음).
  7. ordersdelivery:
    • orders.delivery_iddelivery.id 간 일대일 관계(하나의 주문에 대해 하나의 배송 정보가 있음).
  8. bookscategory:
    • books.category_idcategory.id 간 다대일 관계(하나의 카테고리에 여러 책이 포함될 수 있음).

정리

  • userslikes, cartItems, delivery 간의 관계를 통해 사용자가 책을 좋아요하거나, 장바구니에 담거나, 배송 받을 수 있는 정보가 연결됩니다.
  • books는 여러 테이블과 연결되어 있어 사용자 행동, 주문 및 카테고리 정보를 통합적으로 관리할 수 있습니다.
  • ordersorderedBook 테이블을 통해 주문 내역과 주문된 책 목록을 관리하며, 이를 delivery와 연결하여 배송 정보까지 추적할 수 있습니다.

Express-generator 프로젝트 구조 요약

  1. bin/www
    • 포트 번호 등의 웹 서버 설정을 정의하는 파일
    • .env 파일과 함께 설정 값을 관리하며, 에러 처리 및 기타 설정을 수행
  2. node_modules
    • Node.js 및 Express에 필요한 모듈들이 설치되는 폴더
  3. public
    • 정적 파일들(images, javascripts, stylesheets)을 저장
    • 정적인 콘텐츠 예: 로고, 회사 소개 페이지 등
  4. routes
    • 각 경로를 담당하는 모듈들이 들어 있는 폴더
    • 라우팅 로직을 구현하는 모듈들로, 요청에 따라 어떤 로직을 수행할지 결정
    • 자바의 Controller와 유사한 역할
  5. views
    • 클라이언트에게 HTML 코드로 "화면"을 전달하는 파일들
  6. app.js
    • Express 서버의 시작점
    • URL에 따라 라우팅을 해주는 역할
  7. package.json
    • 설치된 모듈 이름, 버전 등의 정보가 작성된 파일

프로젝트 셋팅

  • 다음과 같이 디렉토리 셋팅후, 기초적인 API들 틀만 잡아주었다.
profile
성장해나갈 개발자

0개의 댓글