게시판 DB에서

게시판 DB에서

QA

게시판 DB에서

답변 4

본문

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

sir.kr/g4_qa/124449

이 질문의 답변에 있는 용도 외에도 답글 및 정렬 용도가 있습니다

답글====

댓글외에 답글(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보다 빠름이라고 설명을 넣어두었던 부분이기도 합니다)

 

속도문제는 아래 링크에 잘 설명되어있네요

jsonobject.tistory.com/408

 

 

 

감사합니다. 어느 게시물의 답글 구분하는 필드가 필요하네요.
SELECT * FROM g5_write_free WHERE wr_is_comment = 0 AND wr_reply != "" and wr_num = 원글의 wr_num
ORDER BY wr_id ASC

정렬은 전체 글(댓글 빼고) 읽어올때,  정렬이 필요한 것이네요...

SELECT * FROM g5_write_free WHERE wr_is_comment = 0 ORDER BY wr_num, wr_reply ASC

그래서 wr_num를 마이너스로 정한것이네요.

https://sir.kr/g4_qa/124449

답변 감사합니다.  질문은 wr_num이 꼭 필요한 이유입니다.  SQL로 댓글 찾는것은

SELECT * FROM g5_write_free WHERE wr_is_comment = 1 and wr_parent = 1 ORDER BY wr_id ASC
로 가능한것 같습니다.  wr_num가 꼭 필요한 이유가 뭔지.  즉 wr_num가 없어도 복잡한 sql로도 가능할것 같습니다.  복잡한 sql로 불가능할때 wr_num이 들어가야 되는데,  그런 부분이 어떤것이 있는지 알고 싶습니다.

답변 기능을 안 쓰시면 지금 말씀하신 정렬 방법으로도 정렬이 가능합니다.

다만 답변 기능을 쓰기 시작하는 순간부터 wr_id는 정렬 관련에서는 무의미해진다고 보시면 될 것 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 136
© SIRSOFT
현재 페이지 제일 처음으로