[section 2] 데이터베이스(2) - DB 설계

수경·2022년 12월 5일
1

코드스테이츠

목록 보기
34/57

실습 과제물

인스타 그램 스키마 디자인 과제를 진행했다!

User

사용자 정보

  • id ➡️ primary key : 사용자 식별 아이디
  • password
  • name
  • introduce

Follow

팔로우 / 팔로잉 기능

  • id ➡️ primary key
  • user_id ➡️ foreign key(User)
  • follower_id ➡️ foreign key(User)

Post

게시글

  • id ➡️ primary key : 게시글 식별 아이디
  • user_id ➡️ foreign key(User) : 사용자와 게시글 연결
  • photo
  • text

Comment

댓글

  • id ➡️ primary key : 댓글 식별 아이디
  • post_id ➡️ foreign key(Post) : 게시글과 댓글 연결
  • text

HashTag

해시태그

  • id ➡️ primary key : 해시태그 식별 아이디
  • postTag_id ➡️ foreign key(PostHashTag) : 게시글과 해시태그 연결, 다대다
  • commentTag_id ➡️ foreign key(CommentHashTag) : 댓글과 해시태그 연결, 다대다

PostHashTag

게시글 해시태그, 게시글-해시태그 다대다 연결을 위한 테이블

  • id ➡️ primary key : 게시글 해시태그 식별 아이디
  • post_id ➡️ foreign key(Post) : 게시글과 게시글의 해시태그 연결
  • tag

CommentHashTag

댓글 해시태그, 댓글-해시태그 다대다 연결을 위한 테이블

  • id ➡️ primary key : 댓글 해시태그 식별 아이디
  • comment_id ➡️ foreign key(Comment) : 댓글과 댓글의 해시태그 연결
  • tag

PostLike

게시글 좋아요

  • id ➡️ primary key : 게시글 좋아요 식별 아이디
  • post_id ➡️ foreign key(Post) : 게시글과 좋아요 연결
  • like

CommentLike

댓글 좋아요

  • id ➡️ primary key : 댓글 좋아요 식별 아이디
  • comment_id ➡️ foreign key(Comment) : 댓글과 좋아요 연결
  • like

답안


궁금한 점

사실 맨 처음에 Follow 정보를 아래와 같이 자기참조 형태로 작성했었다.
결국 Following/Follower 도 User.id를 다대다로 연결해야 하는 데, 왜 Follow 테이블을 만들어서 새로 연결해야 하는지 이해가 가질 않는다!

근데 이제 생각해보니까 다대다라서 새로운 테이블을 껴서 만드는 것 같기도 하다.....?.... 맞나?

profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글