yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

[DB/RDBMS] ERD 설계 본문

개발/프로젝트

[DB/RDBMS] ERD 설계

yehey 2023. 11. 27. 21:09

배경

진행하려는 프로젝트는 내가 처음으로 풀스택으로 진행하려하는 프로젝트다. 그래서 기획, 디자인, DB, 개발 다 해야한다는 뜻.

근데 사실 백엔드를 하면서 DB를 제대로 설계해본 경험이 없다. CEOS로 활동하면서 그래도 주워들은게 있어서 다행... DB 설계할 때는 기획 문서와 와이어프레임으로 틀을 좀 잡아놓고, ERD(Entity Relationship Diagram) 설계를 한다고 한다.

그래서 처음으로 프로젝트 진행 전에 ERD를 설계해보는 시간을 가졌다. 

 

contents

우선 사용한 툴은 ERD cloud (https://www.erdcloud.com/) 였다.

(유명하고 무료라고 해서 써봤는데 솔직히 좀 구린거같음)

어제 오늘 열심히 고민하고 와이어프레임도 만들었다. (구려서 아직 공개 불가..)

우선 필요한 테이블은 4개였다.

다음에 기획에서도 소개하겠지만 만들려는 프로젝트는 단 1명을 위한 가계부 웹이기 때문에 user 테이블이 없어서 참 좋았다 ㅎㅎ

만들고 나니 이게 맞나 싶었는데.. 뭐 하다가 잘 안되면 수정하면 되니까!!

 

1. 타입 테이블 (지출,수입,투자,저축 밖에 없음.)

2. 태그 테이블 (타입을 FK로 사용하지만 타입이 필수는 아니다. 왜냐면 기본태그라고 타입에 영향을 받지 않는 태그도 있어서. 자기 자신을 parent id 로 참조 가능하다. 계층형 태그를 적용한 결과이다. 2023.11.26 - [개발/프로젝트] - [DB/RDBMS] 계층형 태그 테이블 관리

3. 가계부-태그 관계 테이블 (내역과 태그 관계를 정의한 테이블이다. 보통 N:M을 관계 테이블로 새로 정의한다고 배웠는데.. 이렇게 쓰는게 맞는지는 모르겠다.)

4. 내역 테이블 (타입을 FK로 받고, 내역을 정의하는 테이블이다. 타입을 태그관계에 넣지 않은 이유는.. 어차피 가계부랑 1:N 관계이고 내역에서 바로 타입을 분리하는 경우가 더 많을거라고 예상해서 우선 FK로 넣었는데 추후에 가계부-태그 관계 테이블로 옮기게 될 수도 있다.)

 

확실히 user table 없으면 이렇게 편하다... 토이프로젝트니까...! 유저 쯤은 없어도..ㅎㅎ

 

 

ERD Cloud 사용 후기

처음에 엄청 어버버 했다. 나의 후기로는 인터페이스가 상당히 불친절해서 단점이 큰 것 같다.

그치만 관계 정의에는 간단해서 좋았다. DB 설계에 익숙해서 쉽게 쉽게 관계 정의가 되고 테이블 구조가 머리로 짜이는 사람은 쉬울 것 같다. (나는 그런 사람이 아니었기 때문에... )

저 PK type에 number를 넣으면 왜 빨간 글씨가 되는지 알 수 없다.

그리고 생성된 관계를 삭제하고 싶어서 많이 헤맸는데, 관계 선을 누르고 해당 컬럼을 모두 지워야 관계가 지워진다. (이거 때문에 시간이 좀 쓰였음..)

이거말고는 꽤 간단하게 쓸 수 있었다. (그치만 ui는 똥구림@!!!!)

 

 

DB 테이블이 수정, 추가, 삭제되면 계속해서 업데이트 할 예정

 

 

Comments