실습 과제물
인스타 그램 스키마 디자인 과제를 진행했다!
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
댓글
- 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
댓글 해시태그, 댓글-해시태그 다대다 연결을 위한 테이블
- id ➡️ primary key : 댓글 해시태그 식별 아이디
- comment_id ➡️ foreign key(Comment) : 댓글과 댓글의 해시태그 연결
- tag
PostLike
게시글 좋아요
- id ➡️ primary key : 게시글 좋아요 식별 아이디
- post_id ➡️ foreign key(Post) : 게시글과 좋아요 연결
- like
댓글 좋아요
- id ➡️ primary key : 댓글 좋아요 식별 아이디
- comment_id ➡️ foreign key(Comment) : 댓글과 좋아요 연결
- like
답안
궁금한 점
사실 맨 처음에 Follow 정보를 아래와 같이 자기참조 형태로 작성했었다.
결국 Following/Follower 도 User.id를 다대다로 연결해야 하는 데, 왜 Follow 테이블을 만들어서 새로 연결해야 하는지 이해가 가질 않는다!
근데 이제 생각해보니까 다대다라서 새로운 테이블을 껴서 만드는 것 같기도 하다.....?.... 맞나?