게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
게시판 답글 알고리즘 질문 드려봅니다.
게시물ID : programmer_10075짧은주소 복사하기
작성자 : kre29
추천 : 0
조회수 : 574회
댓글수 : 4개
등록시간 : 2015/05/14 23:12:27
옵션
  • 본인삭제금지
게시판을 만들 때 답글 기능이 있잖아요?
물론 요즘은 댓글에 밀려서 조금 적긴 하지만, 아직까지도 답글이 필요한 게시판이 있습니다.

이 답글 기능을 만들어보려고 하는데 알고리즘이 여러가지더라구요.
그중에 제가 제일 관심이 갔던건 소수점을 활용하는 방법인데,

bo_no, bo_order, bo_depth, bo_title 이란 컬럼을 가진 테이블이 있을 때

1depth의 bo_order = bo_no,
2depth의 bo_order = 1depth의 bo_order + ((1/10^(depth-2)) / no) - 1,
(3.....n)depth의 bo_order = 2depth의 bo_order - ((1/10^(3-2)) / no)

insert 당시에 이런 형식으로 넣으면 어떨까요?

bo_no |bo_order | bo_depth | bo_title
1 |1 |1 |첫 번째 글
2 |0.5 |2 |첫 번째 글의 답글 1
3 |3 |1 |두 번째 글
4 |0.25 |2 |첫 번째 글의 답글 2
5 |0.48 |3 |첫 번째 글의 답글 1의 답글 1
6 |2.166 |2 |두 번째 글의 답글 1
7 |0.2357... |3 |첫 번째 글의 답글 2의 답글 1
8 |0.125 |2 |첫 번째 글의 답글 3
9 |0.3888... |3 |첫 번째 글의 답글 1의 답글 2
10 |0.2347... |4 |첫 번째 글의 답글 2의 답글 1의 답글 1

결과는 이런식으로 나오는데,,,
bo_order 순으로 desc 정렬하면 이와 같습니다. (게시판에 출력되는 형식)

3 두 번째 글
6 두 번째 글의 답글 1
1 첫 번째 글
2 첫 번째 글의 답글 1
5 첫 번째 글의 답글 1의 답글 1
9 첫 번째 글의 답글 1의 답글 2
4 첫 번째 글의 답글 2
7 첫 번째 글의 답글 2의 답글 1
10 첫 번째 글의 답글 2의 답글 1의 답글 1
8 첫 번째 글의 답글 3

여기까지는 정상적으로 정렬 될 것 같은데,
혹시 이 알고리즘에 문제가 될만한 부분이 있을까요?

프게분들의 의견 좀 부탁드리겠습니다!
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호