묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
제로보드의 답변게시판 제작 관련 질문.
2012.06.25 17:01
답변이 달릴 수 있는 게시판을 짜는 db 설계법은 여러가지가 있지만
그중에서도 가장 보편적이라고 생각되었던.
root_no, thread 필드를 이용한 방법을 주로 사용해왔습니다.
본글은 글번호와 root_no 가 같게 작성하고 , 그의 자식글은 thread 라는 필드에 "AAAA" ~ "ZZZZ" 식으로
4뎁스의 댓글까지 관리할 수 있도록 하는 것 말입니다.
그런데 제로보드XE 를 보다보니.
list_order 라는 필드가 있지만 글번호에 곱하기 (-1) 한 것 정도이지 답변글을 쓴다고 해서 달라지는것은 없고
다만 parent_srl 이란 필드를 둬서 자기 부모글이 무엇인지를 놓도록 하였습니다.
헌데 이렇게 해선 db 쿼리상에서 답변글이 반영된 올바른 정렬을 가져올수 있는 아이디어가 생각나지 않습니다.
order by list_order asc 라고 하면 답변글이 맨 밑에 가서 달려버릴 거고.
제가 생각할 수 있는 유일한 방법은 모든 댓글을 로드해와서 php 에서 루프돌면서 재정렬 해준다음
뿌려주는 것입니다.
헌데 그렇게 하면... 쓸데없는 부하를 유발시키게 되니까 별로 권장할만한 방법은 아닐 것 같은데요.
혹시 일반적인 게시판에 저렇게 두필드 추가 만으로도 구현 가능한 답변형 게시판 구조를 알고 계신분이 있나요?
그냥 짜여져 있는대로 사용하면 궁금해 하지 않아도 될 문제이긴 하나.....
개발자로서.. 알고는 있어야 하니... 꼭 부탁드립니다.
현재 XE 의 xe_document 테이블에서는, 답변형 목록을 고려하지 않고 만든 것으로 알고 있습니다
답변형 구조를 비교해서 보고 싶으시면
xe_comment 를 분석해보시면 될겁니다. 댓글은 답변 형 구조로 되어있으니깐요
xe_comment 보면 parent_srl 과 list_order 를 이용합니다
(xe_comment 보면 list_order 가 단순히 (-1) 개념이 아님을 확인할 수 있을겁니다.
comment 모듈의 dB와 출력시키는 부분의 소스와 쿼리를 비교해보시면 알 수 있지 않을까요?
(참고로 저도 해보진 않아서.. 답변형 목록보다 현재의 XE 목록형이 사실 더 효율적이거든요)