일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 지보싶 신촌점
- 예쁜술집 예술
- 홍대 토라비
- 고르드
- graphql 400
- 잠실새내
- 비동기배열처리방법
- 앙버터마카롱
- 홍대 카페 장쌤
- graphql with RN
- apollo react native
- typescript
- 운정 소바동
- 신촌 소문난집
- 금별맥주
- graphql with reactnative
- graphql
- 홍대 예술
- 화이트해커를 위한 웹 해킹의 기술
- 토라비
- graphql mutation error
- 잠실새내 도그존
- useMutation error
- graphql react native
- promise메서드
- apolloclient
- 비동기배열
- 도그존
- 화이트 해커를 위한 웹 해킹의 기술
- promise처리
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
[DB/RDBMS] ERD 설계 본문
배경
진행하려는 프로젝트는 내가 처음으로 풀스택으로 진행하려하는 프로젝트다. 그래서 기획, 디자인, 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 테이블이 수정, 추가, 삭제되면 계속해서 업데이트 할 예정
'개발 > 프로젝트' 카테고리의 다른 글
[BE/spring boot] JAVA 설치 및 스프링 부트 서버 세팅 (1) | 2023.12.06 |
---|---|
[BE/restful] 백엔드 스택, DB 정하기 (0) | 2023.11.29 |
[DB/RDBMS] 계층형 태그 테이블 관리 (0) | 2023.11.26 |
[React] 이화여대 멋사 9기 전시 웹사이트 개발 회고 (22.01.09~22.02.21) (0) | 2022.05.24 |
[CEOS - 4~5주차 미션] react-vote (2) | 2021.08.29 |