Instagram 스키마 디자인

sunn·2022년 3월 7일
0

스키마(Schema)
데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명 -> 데이터베이스의 청사진이라고 할 수 있음!

그렇다면, 인스타그램의 포스트를 클릭 했을 때 나오는 화면을 보고 스키마를 구성해보자

1. 게시물(Post) 작성 기능

인스타그램에서는 여러 개의 사진(A)을 올릴 수 있습니다. 사진을 업로드할 때, 사진을 설명하는 간단한 글(C)이 올라갑니다.

2. 게시물에 댓글 달기 및 좋아요 기능

게시물이 업로드되면 다른 사용자는 이 게시물에 댓글(E)을 달 수 있고, 좋아요(B) 를 눌러 관심을 표할 수 있습니다.

3. 해시태그 기능

게시물에 #감성 #맛집 등의 해시태그(D)를 남길 수 있으며, 이 해시태그를 누르면 이 해시태그가 사용된 모든 게시물을 한 데 모아 볼 수 있습니다.

4. Follow 기능

인스타그램에서 친구 관계는 팔로워(follower)와 팔로잉(following)으로 나뉩니다. 김코딩이 최해커를 following 하면, 최해커의 피드가 김코딩의 홈 화면에 나타납니다. 최해커의 입장에서는 김코딩이 follower로 추가됩니다.


더미 스키마

예시를 보고 구성해 본 스키마. 아직은 정신 없고 조잡하다


위 더미 스키마를 보고 dbdiagram.io에서 코드를 활용해 더 깔끔히 만들어 보았다.

dbdiagram.io에서 코드를 기반으로 자동 생성 된 다이어그램


dbdiagram.io 코드

table users {
  id varchar [pk]
  img varchar
}

table post {
  id int [pk]
  user_id int
  user_img varchar
  img varchar
  text varchar
  like int
}

Ref: users.id > post.user_id
Ref: users.img > post.user_img
Ref: like.count > post.like


table hashtag {
  post_text int
  comment_text varchar
}

Ref: post.text > hashtag.post_text
Ref: comment.text > hashtag.comment_text


table comment {
  id int [pk]
  user_id int
  user_img varchar
  text varchar
  like int 
}

Ref: users.id > comment.user_id
Ref: users.img > comment.user_img

table follow {
  user_id int 
  user_img varchar 
  follow_count int
}

Ref: users.id > follow.user_id
Ref: users.img > follow.user_img

table follower {
  user_id varchar 
  user_img varchar 
  follower_count int
}

Ref: users.id > follower.user_id
Ref: users.img > follower.user_img

table like {
  count int
}

코드가 직관적이어서 이해하기 쉬웠다.
페이지 구성요소들을 떠올리면서 설계해본 스키마 디자인 스프린트!

profile
:-)

0개의 댓글