[PROJECT] 정기구독 웹서비스 3 - 테이블 명세서, ERD

zirryo·2023년 1월 13일
0

💊 Pillivery

목록 보기
3/7

22.11.10 THU (DAY 3)


💿 테이블 명세서

테이블 명세서
최종적으로 설계된 테이블과 인덱스를 데이터베이스 공간에 맵핑시키고 저장공간 등의 물리 모델을 기술한 문서

테이블 명세서를 작성하는 방법은 다음과 같다.
1. 데이터베이스 목록을 작성하고,
2. 데이터베이스의 물리적 상세내용을 기술함.

즉, 서비스에서 사용될 테이블을 미리 설계하고 그 내용을 문서화 하는 것이다.
구현 단계에서 개발이 진행됨에 따라 테이블 설계서의 내용이 일부 변경될 수 있다.


User 테이블

컬럼명타입NOT NULLFK설명
userIdlongYPK유저 고유 식별자
emailstringY사용자의 이메일
passwordstringY사용자의 비밀번호
realNamestringY사용자의 이름 (실명)
displayNamestringY사용자의 닉네임
addressstringY사용자의 주소
phonestringY사용자의 휴대폰 번호
userStatusenumY사용자의 상태 (활동중, 회원탈퇴)
wishListlistY (1:N)사용자의 아이템 찜 목록
orderslistY (1:N)사용자의 주문 목록
reviewslistY (1:N)사용자가 작성한 리뷰 목록
talkslistY (1:N)사용자가 작성한 토크 목록
talkCommentslistY (1:N)사용자가 작성한 토크 답변 목록
CartobjectYY (1:1)사용자의 카트 객체
createdAtdatetimeY최초로 생성된 시간
updatedAtdatetimeY마지막으로 수정한 시간
providerstringOAuth로그인시 Resource server
providerIdstringOAuth로그인시 개인 id or sub
oauthIdstringprovider와 providerId를 합친 개인 식별 id
  • 위의 표는 테이블 명세서에 포함된 테이블 중 하나인 User 테이블이다.
  • 이와 같은 양식으로 11개의 테이블의 정보를 문서화했다.
  • 컬럼명은 엔티티와의 원활한 매핑을 위해 자바 네이밍 컨벤션을 활용했다.
  • 전체 테이블 확인하기




💿 E-R Diagram

ER diagram
Entity-Relationship Diagram

현실세계의 요구사항(Requirements)들로 부터 Database를 설계과정에서 활용된다.
즉, 개념을 모델링하는 것으로 개체(entity)속성(attribute), 관계성(relationship) 을 표현한다.


Workbench로 만든 E-R Diagram

ERD는 테이블 명세서를 기반으로 작성되었으며, 백엔드 팀원 분께서 작업해주셨다.




💿 User Flow 유저 플로우

유저플로우
유저가 어떤 작업을 처리하기 위해 서비스 내에서 이동하는 경로를 나타낸 것.


아래의 유저 플로우는 프론트 팀원 분들이 제작해주셨다.
(원본 이미지가 굉장히 큽니다. 새 탭으로 원본을 열어 상세 내용을 확인할 수 있습니다.)

  • 처음 메인페이지로 들어오는 시점부터 수 많은 분기점에서 나뉘는 다양한 경로들이 상세히 작성되어 있다.
  • 테스트 페이지를 구현하여 유저의 건강상태를 간략하게 확인하고 그에 맞는 제품 추천을 진행하려고 하였으나, 우선순위 로 배정되었고 결국 시간부족으로 구현하지 못했다.

위 이미지는 유저 플로우 중 제품 상세 페이지 >>> 결제 페이지 로 이동하는 부분이다.
(전체 유저 플로우에서 가운데에 위치하고 있다.)

  • 제품 상세 페이지에서 유저는 아이템을 구매하거나, 하거나, 장바구니에 담을 수 있다.
  • 구매를 선택했다면 다음 분기점에서 정기배송(구독)을 할 것인지, 혹은 일반(일회성) 구매를 할 것인지 선택하게 된다.
  • 장바구니에 담기를 선택했을 때도 정기배송 항목으로 담을 것인지, 일반 항목으로 담을 것인지 선택하게 된다.
  • 장바구니에 아이템을 담았다면 현재 페이지에서 그대로 이어서 쇼핑을 진행할 수도 있고 장바구니로 이동할 수도 있다.

0개의 댓글