[MeU] Database Table 설계

sorzzzzy·2022년 3월 12일
0

Spring Project

목록 보기
12/18
post-thumbnail

Code.presso Java 웹 개발 체험단 활동을 통해 배운 것들(SpringbootMyBatis, SQL Mapper 등) 을 바탕으로 트위터 Clone Coding 프로젝트 개발을 시작했다!

프로젝트 이름은 MeU 이다^^ㅎ
내가 낸 아이디어인데 그저 너무 좋다고 칭찬해준 우리 팀원들에게 감사의 인사를 전하며,,,,,!
프로젝트를 진행하는 동안 마주하게 될 크고 작은 이슈들을 차근차근 정리해보려고 한다😆


🏷 템플릿 구매

애초에 체험단 활동이 백엔드 위주로 진행되었기 때문에 템플릿은 따로 구매해 사용했다.

Vogel 이라는 템플릿인데, 트위터를 사용하진 않지만 언뜻 보기에도 굉장히 유사해보인다!

템플릿 구매는 여기를 참고하면 된다.


🏷 데이터베이스 테이블 설계

첫번째로 데이터베이스 테이블을 설계했다.

실제 SNS 기능을 모두 포함하는 프로젝트로 이전에 다뤘던 블로그 프로젝트보다 테이블 개수가 훨씬 많아져 멈칫했지만😅
강사님께서 DB 설계만 꼼꼼하게 잘 해놓으면 개발은 어렵지 않을 것이라고 했다.

HTML 템플릿은 여기에서 구매했다.


우리 팀은 erd cloud 홈페이지를 통해 ERD를 다음과 같이 생성했다.

  • 설계하는 과정에서 인기가 많은 게시글을 보여주는 기능을 하는 Trending 테이블을 삭제했는데, 이는 Post 테이블에서 SQL문으로 조건을 통해 상위 N개만 가져오는 것으로 처리를 해도 될 것 같다고 판단했기 때문이다.

  • 사용자 이미지와 게시글에 들어가는 이미지를 관리할 UserImgPostImg 테이블도 삭제했다.
    대신 User 테이블에profileImg 필드를 추가했고, 게시글 관련 이미지 파일은 html에서 직접 처리하기로 했다.

  • Follow 테이블에는 팔로우하는 유저들의 정보가 담겨있다.
    (00 가 00 를 팔로우)
    1) 피드에 보일 정보는 "내"가 팔로우하는 사람들의 게시글만 보이면 되기 때문에, Follow 테이블의 userId 를 기준으로 팔로우 하고있는 사용자들의 리스트를 조회하면 된다.
    2) 템플릿으로만 봤을 때 친구 목록을 보여주는 기능은 없는 것 같지만, 있다고 해도 1번과 같은 방식으로 처리하면 된다.
    이러한 이유로 친구 목록을 관리하는 Friend 테이블도 삭제했다. 자꾸 삭제만 하는 ㅎ


멘토님께 DB 설계에 대한 피드백를 받고 더 보완해서 다시 정리하도록 하겠다!

profile
Backend Developer

0개의 댓글