스키마 디자인

BuZZLightyear·2023년 3월 29일
0

정리

목록 보기
42/47

관계형 데이터베이스에는 여러관계가 존재한다

1:1 관계

하나의 레코드가 다른 테이블의 레코드 한개와 연결된 경우

1:N 관계

하나의 레코드가 서로 다른 테이블의 여러개의 레코드와 연결된 경우

N:M 관계

여러개의 레코드가 다른 테이블의 여러개의 레코드와 관계가 있는 경우
다대다 경우에는 조인 테이블을 만들어 관리함.

자기 참조의 관계

한명의 유저는 여러명의 추천을 받을 수 있으므로 1:N의 관계와 유사하다. 그래서 위와 같이 표현한다.

인스타그램 스키마 디자인

인스타그램 기능
1. 게시물(Post) 작성 기능
2. 게시물에 댓글 달기 및 좋아요 기능
3. 해시태그 기능
4. follow 기능

내가 그린 스키마 디자인


1. USERS한명이 수많은 POST를 작성 할 수 있으므로 1:N의 관계를 생각해 POSTS테이블의 user_id에 연결 했다. 그리고 하나의 POST에는 수많은 사진과 텍스트를 넣을 수 있으므로 WRITING 테이블에 1:N관계를 통해 연결하였고 WRITING 테이블에 텍스트와 사진을 저장 할 수있는 필드를 만들어 주었다.
2. 하나의 POST에 여러개의 댓글을 달 수 있으므로 COMMENT 테이블에 1:N관계로 연결해 주었고, 또 USERS한명이 여러개의 댓글을 쓸 수 있으므로 COMMENT 테이블에 1:N관계로 연결해 주었다.
그리고 좋아요 기능또한 USERS가 여러개의 좋아요를 사용할 수 있기때문에 1:N의 관계를 사용했고, 하나의 POST에 여러개의 좋아요가 달릴 수 있으므로 1:N관계를 마찬가지로 사용 했다.
3. 해시태그는 하나의 POST에 여러개의 해시태그가 달릴 수 있고 하나의 해시태그에 또한 여러개의 POST가 엮일 수 있기때문에 조인 테이블을 이용해 밖에서 연결 하였다.
4. following 과 follower를 구분해서 연결했다. 이때도 역시 한명의 USERS가 여러명을 팔로우 할수있고 여러명한테 팔로우 당할 수 있기 때문에 1:N의 관계를 이용했다.

처음 DB를 접해보고 스키마디자인을 처음 해봐서그런지 뇌가 작동을 하지않았다. 머리가 터질것 같았다. 도와주는 사람들이 없었더라면 뛰어내렸을거 같다.

profile
버즈라이트이어

0개의 댓글