알고리즘은 https://vkein.tistory.com/entry/%EB%8B%B5%EB%B3%80%ED%98%95-%EA%B2%8C%EC%8B%9C%ED%8C%90 를 참조하였다.
게시판의 게시글의 경우 최신글이 위로 올라가는게 일반적
게시글내 댓글의 경우 최신댓글이 아래로 내려가는게 일반적
위 링크에는 두가지 방법이 모두 소개되어있다.
게시글의 시점이지만 댓글에도 적용가능하다.
이론적으로 댓글, 대댓글, 대대댓글, 대대.......댓글, 무한까지 가능하다.
모든 댓글을 sort (정렬순서)와 depth(깊이) 이 두가지의 변수로 저장한다.
대댓글이 작성될때 그 뒤의 모든 댓글의 sort값을 하나씩 늘린뒤
그 사이 빈 sort값에 depth+1의 댓글을 삽입한다.
당연히 댓글과 게시글을 연결시켜주는 것도 필요하다.
두서없이 작성했는데 위에 아주 잘 설명해놓았으니 한번 보시길.
기본적인 공식은
*공식
1. SELECT NVL(MIN(SORTS),0) FROM BOARD
WHERE BGROUP = (원글의 BGROUP)
AND SORTS > (원글의 SORTS)
AND DEPTH <= (원글의 DEPTH)
2-1. 1번이 0 일 경우
3. SELECT NVL(MAX(SORTS),0) + 1 FROM BOARD
WHERE BGROUP = (원글의 BGROUP);
4. INSERT INTO BOARD VALUES
(번호, (원글의 BGROUP), (3번값), (원글의 DEPTH +1) ,' 제목')
2-2. 1번이 0이 아닐 경우
3. UPDATE BOARD SET SORTS = SORTS + 1
WHERE BGROUP = (원글의 BGROUP) AND SORTS >= (1번값)4. INSERT INTO BOARD VALUES
(번호, (원글의 BGROUP), (1번값), (원글의 DEPTH +1) ,' 제목')
출처: https://vkein.tistory.com/entry/답변형-게시판 [Vkein Blog]
No comments:
Post a Comment