게시판 DB에서
본문
wr_num이 있는데 이것의 사용법이 어떻게 되나요?(ciboard에서는 post_num)
번호는 -1, -2, -3으로 되는데..
게시글 정렬을 위한 키인 것 같습니다. (참조) http://www.ciboard.co.kr/manual/tables/post
아래와 같이 읽어 오면 될것 같은데..
SELECT * FROM g5_write_free WHERE wr_is_comment = 0
ORDER BY wr_id ASC
or wr_id = wr_parent로
다른 경우가 있을 까요? 다른 활용방법이 있는지 알려주세요.
답변 4
이 질문의 답변에 있는 용도 외에도 답글 및 정렬 용도가 있습니다
답글====
댓글외에 답글(wr_replay)이라는 것이 있죠
어느게시물의 답글인지 구분하는 용도로 쓰입니다
정렬====
최신글이 먼저 나오도록 하기 위하여 기본적으로 order by wr_num, wr_reply
이렇게 사용하는데 wr_num가 없으면 wr_id를 사용해야겠죠
order by wr_id desc, wr_reply
이 코드에서는 문제점이 원글에 달린 답글의 wr_id가 크기 때문에 답글이 먼저 나와 버립니다
그렇게 되면 원글 답글을 한번에 추출할 수 없으니 원글따로 답글따로 추출하는 복잡함이 생깁니다
또 다른 문제는 order by절에 desc와 asc를 함께 사용하면 index를 타지않는다고 합니다
즉 속도가 느려진다는 말이죠
따라서 wr_num의 값을 등록시 마다 점점 감소하도록 입력하여 최신글이 먼저 나오게 하는데 asc을 사용하려는 것입니다(이것은 예전 G4시절 소스에 그누보드 개발자가 주석으로 asc가 desc보다 빠름이라고 설명을 넣어두었던 부분이기도 합니다)
속도문제는 아래 링크에 잘 설명되어있네요
답변 기능을 안 쓰시면 지금 말씀하신 정렬 방법으로도 정렬이 가능합니다.
다만 답변 기능을 쓰기 시작하는 순간부터 wr_id는 정렬 관련에서는 무의미해진다고 보시면 될 것 같습니다.
감사합니다^^