업무 파악 ➡️ 개념적 모델링 ➡️ 논리적 모델링 순으로 진행해보겠다.
물리적 모델링은 구현에서 해보고 필요하면 역정규화도 해볼 예정이다.
업무 파악을 그냥 글로만 적기에는 생각이 잘 안나서 UI를 먼저 그려보았다.
UI에서도 등록 부분을 보면 엔티티와 속성, 관계를 파악하기 쉽다.
UI는 간단하게 OvenApp이라는것을 사용했다.
OvenApp
1. 메인 화면
: 스타트업의 정보를 한눈에 볼 수 있는화면이다.
2. 기업 세부 화면
: 각 기업의 세부 사항들을 볼 수 있는 화면이다.
3. 기업 등록 화면
: 관리자가 스타트업을 등록하는 화면이다.
4. 기업 세부 정보 등록 화면
:관리자가 기업 세부 화면을 등록하는 화면이다.
➡️ 이렇게 UI를 작성하면 업무 파악하기가 수월하다.
E-R 다이어그램 그리는건 draw.io 를 이용했다.
https://www.draw.io/
ERD
[회원], [회사], [회사 세부], [회사 성장] 이라는 엔티티가 있다. 엔티티끼리는 관계를 맺고있다.
이렇게만 해도 한눈에 프로젝트의 기능을 한눈에 볼 수 있다.
프로젝트에서는 관계형 데이터베이스를 사용하려고한다.
논리적 데이터 모델링에서는 위에서 만든 ERD를 참고해 관계형 데이터 모델로 전환하면된다.
ERD에서 관계형 데이터 모델로 전환하는데는 매핑룰이 있다.
관계형 데이터 모델을 그리는 툴은 ERD Cloud를 사용했다.
https://www.erdcloud.com
데이터 모델링을 이번에 처음 해봐서 테이블이 몇개 없는데도 어렵게 느껴졌다.
그래도 어떻게 하면 성능이 좋을지, 정규화가 되었는지 고민해보면서 모델링을 해보았다.
모델링을 각자 하고나서 서로 공유해보았다.
내것과는 많이 달라보인다.
프로젝트에 대한 얘기를 중간중간에 많이 했는데도 서로 이해하고있는 부분이 달라서 놀랐다.
의사소통이 얼마나 중요한지 깨닫게된다.. 친구랑 해도 다르게 이해하는 부분이 생기는데 실제 업무를 하게되면 어떻게 될지 궁금하다
ERD Cloud에 팀원을 초대하는 기능이 있어서 앞으로는 이곳에 변경사항들을 같이 관리하기로했다.
모델링을 다하고 구현을 하던중에 아직은 투자 액수에따른 투자 라운드의 기준이 정확하지 않다는것을 알게되었다.
참고 : https://www.thebell.co.kr/free/content/ArticleView.asp?key=202104012122449200101021&lcode=00
Stage 테이블을 삭제하고 ENUM으로 대체하기로 했다.