5847927828
611
2020-04-12 19:41:44
6
821

MYSQL 대댓글 기능


구글에 계층형 쿼리에 대해서 검색해보면

ㄴ 0

    ㄴ1 

         ㄴ 2

             ㄴ 3

이런식으로 무한 대댓글 기능을 설명하더라구요

근데 저는

ㄴ 0

     ㄴ 1

     ㄴ 1

     ㄴ 1

이렇게 한 댓글에 계속쌓여가는 기능을 구현하고싶은데

이건 어떤식으로 구현가능할까요...?

0
  • 답변 6

  • Kals
    383
    2020-04-13 00:43:07

    제가 했던 방식이라 기억나는대로 설명해볼게요.


    댓글번호, 댓글그룹, 대댓글시퀀스 총 3가지의 컬럼이 필요합니다.


    댓글번호는 오토인크리먼트로 모든 게시글, 댓글 통틀어 중복없는 유니크 키고, 댓글 그룹은 해당 게시글의 댓글 순서입니다.

    댓글 시퀀스는 댓글 그룹 안에서의 순서구요.


    ex)

    임의의 A 라는 게시글에 a, b, c 라는 총 3개의 댓글이 달렸습니다.


    a 댓글번호 67 댓글그룹 1

    b 댓글번호 69 댓글그룹 2

    c 댓글번호 73 댓글그룹 3


    여기서 b 라는 댓글에 대댓글을 달면 해당 댓글엔 대댓글이 없으니 첫번째 대댓글이라 1번이라는 대댓글 시퀀스를 가집니다.

    b에 두번째로 달면 대댓글시퀀스는 2번이구요.


    이런식으로 댓글그룹은 게시글에 한정되어 종속되고,

    대댓글시퀀스는 댓글그룹에 종속되어 구현 가능합니다.


    모바일로 쓴거라 설명이 잘 전달되었나 모르겠네요.

    저도 초보긴한데 더 궁금하신 점 있으심 닉네임 태그 남겨주세요.

  • 5847927828
    611
    2020-04-13 00:52:59 작성 2020-04-13 00:58:23 수정됨

    kals

    답변 너무 감사합니다.

    id     group     squence

    1  -   1   -    null

         ㄴ  2   -  1   -   1

         ㄴ  3   -  1   -   2

    4   -   2   -  null

    5   -   3   -  null

         ㄴ  6   -   3    -  1 

    제가 이해한게 이게 맞나요??

  • programmerEgg
    1k
    2020-04-13 09:56:50

    id auto_increment면 마지막 칼럼 필요없습니당

  • Kals
    383
    2020-04-13 20:13:40

    넵 맞습니다!! 미천한 답변 한번에 이해해주시다니 영광ㅎㅎ

    정렬해줄 방법이 생각나지않아 에그님의 답변으로는 해보지 않았는데 방법은 여러가지니 이런 저런 방법으로 시도해보시는 것도 좋은 경험일 것 같아요~

  • 5847927828
    611
    2020-04-13 21:08:08

    kals

    kals 님이 말씀해주신대로 테이블 다시짜서 원하는 기능 만들어냈습니다 감사합니다 ㅎㅎ


  • Kals
    383
    2020-04-13 22:05:20

    다행이네요 ㅎㅎ 저 처럼 쉬운 길 놔두고 되돌아가지 마시길!!

    좋은 밤 되세요~

  • 로그인을 하시면 답변 을 등록할 수 있습니다.