ErdForge데이터 모델링 워크스페이스 · v1.0.2

Requirements to ERD

요구사항으로 ERD 만드는 법

실제 요구사항 문장에서 엔터티, 컬럼, 관계를 뽑아 ERD 초안으로 바꾸는 단계별 예시입니다.

상황

요구사항으로 ERD 만드는 법

작은 도서 대여 서비스 요구사항을 읽고 테이블 후보와 관계를 정리하는 예시입니다.

입력

요구사항 문장

출력

테이블, 컬럼, 관계 초안

주의점

동사보다 저장할 명사부터 찾기

요구사항

요구사항

  • 회원은 책을 검색하고 대여 신청을 할 수 있다.
  • 한 책은 여러 권의 물리적 사본을 가질 수 있다.
  • 대여는 시작일, 반납 예정일, 실제 반납일, 연체 상태를 가진다.
  • 회원은 책에 리뷰를 남길 수 있다.

테이블 설계

테이블 설계

members대여 회원
  • id PK
  • email UNIQUE
  • name
  • joined_at
books도서 정보
  • id PK
  • isbn UNIQUE
  • title
  • author
book_copies물리적 책 사본
  • id PK
  • book_id FK
  • barcode UNIQUE
  • status
loans대여 건
  • id PK
  • member_id FK
  • book_copy_id FK
  • started_at
  • due_at
  • returned_at
reviews도서 리뷰
  • id PK
  • member_id FK
  • book_id FK
  • rating
  • body

관계

관계

books 1:N book_copiesmembers 1:N loansbook_copies 1:N loansmembers 1:N reviewsbooks 1:N reviews

설계 포인트

설계 포인트

책 정보와 책 사본을 분리합니다

하나의 도서 정보는 여러 물리 사본을 가질 수 있습니다. 대여 가능 여부는 books가 아니라 book_copies.status에서 관리합니다.

요구사항의 명사를 테이블 후보로 봅니다

회원, 책, 사본, 대여, 리뷰처럼 저장해야 하는 명사를 먼저 뽑고, 단순 상태나 계산값은 컬럼 후보로 분류합니다.

업무 규칙은 관계 수량으로 검증합니다

회원 한 명이 여러 대여를 만들 수 있는지, 책 사본 하나가 동시에 여러 대여에 묶일 수 있는지 질문하며 카디널리티를 확정합니다.

구현 전 체크

구현 전 체크

  • 동시에 대여 중인 book_copy_id가 중복되지 않도록 활성 대여 제약을 검토합니다.
  • reviews(member_id, book_id)는 정책에 따라 UNIQUE를 둘 수 있습니다.
  • 반납 후 이력 보존을 위해 loans는 삭제하지 않습니다.

다른 ERD 예시

다른 ERD 예시

예시를 그대로 따라 그리거나, 가입 전 데모 캔버스에서 테이블과 관계를 먼저 만져볼 수 있습니다.