🎯 설계하게된 배경

UMC 연합동아리를 하는 와중에 실제 사람들이 많이 사용하는 에플리케이션의 데이터베이스를 고객 관점에서 설계해보는 활동을 하게 되었습니다. 저희 스터디팀의 경우 "인스타그램"이 선정되어 활동을 해보게 되었습니다.

🎯 테이블 관계 분석

  • User : Follow
  • User : Block
  • User : BestFriend 관계
    한명의 User가 여러명의 팔로우, 차단, 친한 친구 목록을 가질 수 있음
    반대의 경우도 가능하기 때문에 N:M 관계
  • User : Board
  • User : Story
    한명의 User가 여러개의 게시글, 스토리를 작성 가능
    반면 하나의 게시글, 스토리가 여러명의 User를 갖는건 불가능
    그래서 1:N 관계
  • Board : Comment
  • Board : Images
  • Comment : ReComment
    하나의 게시글, 덧글에는 여러개의 덧글, 답글이 달릴 수 있다.
    마찬가지로 하나의 게시글에는 여러개의 이미지가 포함된다.
    하지만 반대의 경우는 불가능 1:N 관계
  • Board : BoardLike
  • Story : StoryLike
  • Comment : CommentLike
  • ReComment : ReCommentLike(스크린샷에는 없음)
    게시글, 스토리, 덧글에는 여러개의 좋아요가 달릴 수 있다.
    하지만 반대의 경우는 불가능 1:N 관계
  • Board : BoardHashtag : Hashtag
  • Story : StoryHashtag : Hashtag
  • Comment : CommentHashtag : Hashtag(스크린샷에는 없음)
  • ReComment : ReCommentHashtag : Hashtag(스크린샷에는 없음)
    각각 Hashtag와 N:M 관계
  • Board : BoardTagUser : User
  • Images : ImageTagUser : User
  • Comment : CmtTagUser : User
  • Story : StoryTagUser : User
    전부 여러 User를 태그할 수 있으며, User은 여러 부분에 태그될 수 있음
    각각 N:M 관계
  • Story : StoryImg
    하나의 스토리에는 하나의 이미지만 있음 1:1관계

전부 21개의 테이블로 간략하게 만들어보았습니다.

🎯 설계 완료 이미지

profile
최악의 환경에서 최선을 다하기

0개의 댓글