Quick DBD ( ERD 플랫폼)

BlackBean99·2021년 12월 30일
0

DB

목록 보기
1/5
post-thumbnail

현재 소규모 경매 웹사이트 프로젝트를 실시하고 있습니다.

WEART라는 제목의 프로젝트를 진행하면서 필요한 DB를 설계하는 과정을 기록해 볼까 합니다.
ER다이어그램을 작성은 협업을 하면서도 구체화 하기 위해 필연적인 작업입니다.
A

그래서 ERD 가 뭔데??

1. ERD (Entity Relationship Diagram)

개발자들은 다른 사람들과 협업하려면 머리 속에 있는 시스템을 눈으로 이해할 수 있는 자료가 있어야한다.
ERD란 말 그대로 데이터(Entity)들의 관계(Relationship)를 그림으로 표현한 것이다. 데이터베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램입니다.

각 도형의 의미를 먼저 알아보면 이러하다.


저 동그라미와 세모 직선은 무슨 의미죠?

이런 뜻입니다.
SpringBoot 개발할때도 어노테이션중 @OneToMany @ManyToOne 이런 것들 보셨죠? 그런걸 위 그림처럼 표시합니다.

그럼 ERD 에 필요한 테이블과 칼럼들을 어떻게 정리하면 좋을까요?

정석? 적인 방법은

1. DB 명세서 작성하기

추출 방법

  • 명사부터 찾는다.
  • 조직의 업무 처리와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외한다.
  • 의미가 같은 명사가 여러개면 대표 명사 하나만 선택
  • 찾아낸 명사를 개체와 속성으로 정확히 분류한다.
    회원은 회원가입을 하기 위해 이메일, 비밀번호, 이름이 필요하다.

위 추출방법으로 우리 경매 사이트 WEART 프로젝트의 명세서를 작성해 보겠습니다

가입한 회원에게는 신뢰도가 크레딧이 부여된다.

회원은 닉네임으로 식별한다. (닉네임 중복 불가)

회원은 예술품을 등록할 때 예술품이름, 예술품 소개, 경매시작 가격을 작성해야 한다.

예술품 소개(게시물)는 사진, 소개글, 예술품 카테고리, 예술품 경매 시작 시간(즉시 시작, 지정 시간), 입찰 가격 단위에 대한 정보가 있다. - 게시글 DB에 들어갈 내용.

회원은 게시글을 수정할 수 있다.

게시글은 게시글 번호로 식별할 수 있다.

예술품은 예술품 코드로 식별을 한다.

회원은 자신이 관심이 있는 예술품에 대하여 장바구니에 넣을 수 있다.

회원의 장바구니에 있는 상품에 대해 경매가 시작할 때 알람이 울린다.

회원의 경매에 참여한 상품에 대해 30분전 경매가 끝나기 전에 알람이 울린다.

회원의 경매에 참여한 상품의 입찰가가 바뀔때 알람이 울린다.

사용자가 알람을 키고 끌 수 있다.

회원은 장바구니에 있는 상품들을 삭제할 수 있다.

입찰 시간이 끝나면 입찰완료로 예술품 상태가 변경된다.

입찰 완료가 된 예술품에 대해 입찰한 회원은 7일 이내에 결제를 해야한다.

결제 완료가 될 경우에, 판매자가 판매 완료 버튼을 눌러서 게시물의 상태를 판매 완료로 변경한다.
가격 제시할 때, 제품의 가격보다 자신의 크레딧이 적을경우 가격을 제시할 수 없다.

요구 사항 명세서에서 개체와 개체의 속성을 추출한 결과

회원닉네임, 이메일, 비밀번호, 이름, 신뢰도, 크레딧
예술품예술품 코드, 사진, 소개글, 예술품 이름, 경매시작 가격, 예술품 카테고리, 예술품 경매 시작시간, 예술품 상태
장바구니장바구니 코드
알람알람 코드, 알람 시간

이정도를 먼저 작성했습니다.
정리를 했으면 이제 ERD를 그려야겠죠?

QuickDBD 사용법.

처음에 Quick DBD를 사용하면 아래처럼 예시가 나올겁니다!

# Modify this code to update the DB schema diagram.
# To reset the sample schema, replace everything with
# two dots ('..' - without quotes).

Customer
-
CustomerID PK int
Name string INDEX
Address1 string
Address2 NULL string
Address3 NULL string

Order
-
OrderID PK int
CustomerID int FK >- Customer.CustomerID
TotalAmount money
OrderStatusID int FK >- os.OrderStatusID

OrderLine as ol
----
OrderLineID PK int
OrderID int FK >- Order.OrderID
ProductID int FK >- p.ProductID
Quantity int

# Table documentation comment 1 (try the PDF/RTF export)
Product as p # Table documentation comment 2
------------
ProductID PK int
# Field documentation comment 1
# Field documentation comment 2 
Name varchar(200) UNIQUE # Field documentation comment 3
Price money

OrderStatus as os
----
OrderStatusID PK int
Name UNIQUE string

프로그래머라면 이정도만 봐도 무슨 문법인지 다들 감이 오나요?

테이블은 --- 로 구분을 하게 됩니다.

아래 칼럼들 간의 PK FK와 관계를 작성하는 ERD Notation 에 대한 설명입니다.

  1. One : 일대일 혹은 일대다 관계

  2. Many : 다대다 관계

  3. One (and only one) : 일대일 관계(하나의 row끼리만 연결)

  4. Zero or one : 일대일 혹은 일대다 관계지만, 필수 조건이 아님

  5. One or Many : 일대일 혹은 다대다 관계

  6. Zero or Many : 참조하는 테이블과의 관계가 불명확

주로 1,2,5 번을 저는 많이 쓰더라구요. 일방적인 관계를 사용할때는 3번을 작성합니다.

다음 포스팅에는 우리 프로젝트의 ERD를 그려보고 어떻게 작성해야 하는지 구체적으로 올려보겠습니다.

포스팅 출처 https://velog.io/@chloe37/ 에서 참고 했습니다. 감사합니다.

profile
like_learning

0개의 댓글