코딩이야기

댓글 구조 설계 본문

KnowHows

댓글 구조 설계

기획자 비제이 2024. 6. 24. 17:42

댓글 구조를 나타내는 데이터베이스 스키마 설계.. 
대댓글(Reply)을 지원하며, 각 댓글이 다른 댓글의 답글로 연결될 수 있음. 

예) 유튜브 댓글 
댓글은 id를 가지며, 대댓글은 어떤 댓글에 댓글인지, parent_id를 갖게 되는 구조. 

간단요약 

댓글 (id = 1) 
댓글 (id= 2) 

                 대댓글 (id=3) (parent id= 2) 

 

 

댓글(DB 스키마) 도표

TableFieldTypeDescription

Comment id serial (PK) Primary key, 자동 증가 ID
  post_id integer (FK) 댓글이 속한 게시물의 ID
  user_id integer (FK) 댓글을 작성한 사용자의 ID
  content text 댓글 내용
  created_at datetime 댓글 작성 시간
  parent_id integer (FK) 부모 댓글 ID (없으면 NULL)

 

 

 

설명

  • Comment Table:
    • id: 댓글의 고유 식별자. 자동 증가하는 정수형 필드
    • post_id: 댓글이 속한 게시물의 ID . 이는 댓글이 어느 게시물에 속해 있는지를 나타내는 외래 키(foreign key)]
    • user_id: 댓글을 작성한 사용자의 ID. 이는 댓글을 작성한 사용자를 나타내는 외래 키
    • content: 댓글의 내용을 저장하는 필드
    • created_at: 댓글이 작성된 시간을 저장하는 필드
    • parent_id: 부모 댓글의 ID를 가리키는 외래 키.
      대댓글일 경우 부모 댓글의 ID가 들어가고, 일반 댓글일 경우 NULL값

 

 

예시 데이터

 

  id post_id user_id content created_at parent_id
  1 101 1 첫 댓글 2023-07-01 12:00:00 NULL
  2 101 2 두번째 댓글  2023-07-01 12:30:00 NULL
  3 101 3 두번째 댓글에 댓글 2023-07-01 12:40:00 2
  4 101 4 두번째 댓글에 댓글  2023-07-01 12:50:00 2
  5 101 5 두번째 댓글에 댓글 2023-07-01 13:00:00 2
  6 101 6 바로 위 대댓글에 댓글 2023-07-01 13:10:00 5

 

1. 첫댓글 
2. 두번째 댓글 
                   3. 두번째 댓글에 댓글
                   4. 두번째 댓글에 댓글 
                   5. 두번째 댓글에 댓글 

                                               6. 5번 댓글에 댓글