DATABASE

데이터베이스 모델 설계하는 규칙

데이터베이스 모델 설계하는 규칙

MongoDB
RDB와 NoSQL 비교하기RDB와 NoSQL 비교하기 RDB(Relational Database) 관계형 데이터베이스(Relational ...

게시글 댓글 만들면서 모델 설계 이해하기

사용자 테이블
id username password email
1 sai 1234 sai@yahoo.jp
2 ssar 1234 ssar@nate.com
게시글 테이블
id title content userId
1 제목1 내용1 1
2 제목2 내용2 1
3 제목3 내용3 2

댓글 기능 넣기 전에 생각해 봐야할 것

게시글 테이블에 코멘트 관련 칼럼 추가할 수 있나?
id title content userId comment
1 제목1 내용1 1
2 제목2 내용2 1
3 제목3 내용3 2
당연히 가능하지!
댓글 데이터(게시글, 작성자, 작성일)를 하나의 칼럼으로 표현할 수 있는가?
id title content userId comment
1 제목1 내용1 1 ssar, 코멘트1, 2021.09.30
2 제목2 내용2 1 ssar, 코멘트2, 2021.09.30
3 제목3 내용3 2 sai, 코멘트3, 2021.10.01
한 칼럼에 여러 데이터를 넣으면 데이터의 원자성이 깨져!!
한 사람 이상의 코멘트를 한 칼럼으로 처리할 수 있나?
id title content userId comment
1 제목1 내용1 1 ssar, 코멘트1, 2021.09.30
mao, 코멘트4, 2021.10.01
2 제목2 내용2 1 ssar, 코멘트2, 2021.09.30
3 제목3 내용3 2 sai, 코멘트3, 2021.10.01
한 칼럼에 여러 사람의 댓글 데이터를 넣으면 데이터의 원자성이 깨져!!

결론

댓글 테이블을 따로 만들어야 한다.

댓글 테이블
id content userId boardId
댓글 번호 댓글 내용 작성자 번호 게시글 번호

 

 

Foreign Key 공식

Foreign Key는 N:1의 관계에서 N에 넣어준다.
N(FK)  대 1

사용자와 게시글의 관계

사용자 게시글
1명 N개

하나의 게시글에는 한 사람의 사용자(1)만 있다.

한 사람의 사용자는 여러 게시글(N)을 가질 수 있다.

사용자와 댓글의 관계

사용자 댓글
1명 N개

하나의 댓글에는 한사람의 사용자(1)만 있다.

한 사람의 사용자는 여러 댓글(N)을 가질 수 있다.

게시글과 댓글의 관계

게시글 댓글
1개 N개

하나의 댓글은 하나의 게시글(1)만 가질 수 있다.

하나의 게시글은 여러 댓글(N)을 가질 수 있다.

최신글