wr_id 값을 항상 wr_parent 에 덮어쓰는 이유가 궁금합니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

wr_id 값을 항상 wr_parent 에 덮어쓰는 이유가 궁금합니다. 정보

wr_id 값을 항상 wr_parent 에 덮어쓰는 이유가 궁금합니다.

본문

왼편 [그누사전] 아니 계층관련 내용을 보면,
- wr_id 필드 값은 각각의 게시물 고유 번호,
- wr_parent 는 답글의 원문(부모글) 고유번호로 설명이 되어있는데
막상 DB를 보면 모든 게시물의 wr_parent 와 wr_id값은 항상 동일합니다.
이유는

write_update.php 중 약 330줄 부분에 [그누보드 배포판 기본소스 내용입니다.]
------------------------------------------------------------------------
if ($w == "" || $w == "r") <-- 새글쓰기나 답글쓰기일 경우
{
.
. 중간생략
.
$wr_id = mysql_insert_id(); <-- auto_increment 로 새롭게 증가된 id값 부여

// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' "); <-- 새로운 id값을 부모 아이디에 덮어쓰기

// 새글 INSERT
//sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) "); <-- DB 테이블 내에 wr_parent 필드에 새로 부여된 wr_id 값 덮어쓰기

------------------------------------------------------------------------

일반 글쓰기, 답글 쓰기 모두 wr_parent 에 글쓰기시 새로 증가부여되는 wr_id 값이 무조건 적으로 덮어쓰기 하도록 되어 있습니다.
결과적으로 새로작성된 모든 글들은(일반글, 답글 포함) 모두 wr_parent 와 wr_id 는 같게 됩니다.

이를 수정하여 wr_parent 는 답글의 부모글 id 값으로 지정되도록 해줬더니 삭제를 할경우 삭제가 안되길래 delete_all.php를 보니 $wr_parent=$wr_id 일 경우에만 삭제되도록 되어있더군요.
뭔가 계속 꼬일 것 같은 느낌이 들어 더이상 수정안하고 일단 조언을 구합니다.
기본 설정이 그누사전과는 달리 이렇게 되어있는 것이 이유가 있을 듯 싶은데 혹시라도 알고 계신분 부탁드립니다.

부모글과 답글 모두 wr_parent = wr_id 가 되어버리면 답글에 대한 부모글의 체계를 확인하는 방법은 결국 wr_num 이 동일하고 wr_reply 가 없는 것이 부모글, wr_reply 가 있는 것은 답글로 비교를 해야하는 것만이 유일한 건가요?

예로 게시글 검색하여 나온 답글들의 부모글을 보여주고 싶은 경우

예) 검색결과 : [원문제목] (답글) 답글제목
을 처리하려면 원래는 간단히 답글의 wr_parent 에 맞는 게시글을 불러오면 되는데,
현재 기본 설정이라면 무조건 쿼리를 돌려서 부모글을 찾아내야 하는 것으로 알고 있습니다.

현재 다른 필드하나를 추가해서 원래 사전에서 정의된 바와 같은 wr_parent 의 기능처럼 사용하여 여기저기 수정중입니다. 그러다가 뭐하고 있나하는 생각이 들어 추가필드 안쓰고 원본소스를 wr_parent 가 원래 의미를 같도록 수정하려고 생각중입니다.
작업중인게 한 게시판 안에 그에대한 답글 게시판이 들어있는 상태라서 답글을 보려면 부모글을 열어야 보이는 형태입니다. 다시말하면 답글을 보려면 부모글이 열려야 합니다. 그렇다보니 일반적인 게시판 형태보다 체계에 좀 민감하네요.

사전에는 체계로 설명되어 있으나 실질적으로는 wr_parent 와 wr_id 가 항상 같게 되는 이유가 궁금하고, 혹시라도 원본소스를 모두 원래 체계대로 수정하면 문제가 있을까요?

댓글 전체

저만 그런건 아닌거 같은데... 검색해봐도 이 사항에 대한 내용은 거의 없네요.
그누보드 기본배포 소스를
----------------
원문(부모글) : wr_parent = wr_id
답글 : wr_parent != wr_id, wr_parent = 부모글의 wr_id
----------------
로 write관련 php, delete관련 php 수정을 한다면 아무문제 없을까요?
검색이나 이동, 최신글 관련 등... 나머지 부분에서도 문제가 생기지 않을 지...
제가 잘못 이해하고 있는건가요?
$wr_parent=$wr_id 인 것은 원글만 그러합니다
원글에 댓글(답변글이 아님)이 달리면 wr_id는 자동 부여되고 wr_parent에 원글의 wr_id를
기록합니다. (wr_num도 원글과 같습니다)
따라서 wr_parent가 같은 글들은 모두 하나의 게시물에 딸린 것이고 원글 또는 댓글이 됩니다
그중 wr_is_comment=0 인 것이 원글입니다
뷰페이지에서 모든 댓글을 가져와서 보여주기위한 방법이겠지요

답변글은 원글이 있지만 리스트에서도 보여지는 단독 게시물과 같습니다
답변글에 댓글을 달수있어야 하니 답변글 자신이 원글이 되어야하지 않겠습니까?
부모글과 wr_num는 물론 같습니다. wr_reply 값이 있으면 답변글이 되는 것이죠

하려는 작업이 검색하여 나온 답변글의 원글을 보여주고 싶은데 원글의 wr_id 가 기록되어
있지 않으니 쿼리를 해서 찾아야된다는 것이죠?
물론 그렇습니다
댓글이란 것이 있으니 그렇게 되어있습니다

쿼리없이 바로 부모글 wr_id를 가져오는 것이 가능하도록 수정을 한다면
필드를 하나 더 추가 하거나 여분필드에 부모글의 wr_id를 기록 하도록 하면 될 것 같습니다만
다시말하면 답글을 보려면 부모글이 열려야 합니다.<---라고 했으니
댓글을 이용하도록 작업하는 것이 편하지않을까 합니다
균이님 말씀 쏘옥 이해 잘했습니다.
제가 아주 잘못 이해하고 있었군요. 커멘트글(댓글)은 생각안하고 원글 답변글만 생각하고 있었네요. 균이님 아니었으면 아주 엄한짓 하고 있을 뻔 했습니다.
뭐만 생각하면 뭐만 보인다더니... 커멘트글이 답글로 보였나봅니다.
잘못 이해하고 있었던점 속시원히 설명해주셔서 정말 너무너무 감사합니다.
wr_parent 와 wr_id 가 나눠서 있는 이유가 답변글이 아닌 댓글 때문에 그런거였군요.
큰거 하나 배웁니다. 이거 근처에 계시면 식사라도 대접해야 할 것 같다라는 생각이 듭니다.
그래도 그동안 필드하나 추가해서 작업했던게 엉뚱한 짓이 아니었음에 다행이긴 하네요.
일단 wr_pr 이라는 필드를 하나 추가해서 돌리고 있습니다.

한 게시판 안에 레이어 탭으로
[ 메인 소개글 ] [ 업데이트 ] [ 댓글 ]
이런식으로 구성되어 있어서
- 메인 소개글 : 원글
- 업데이트 : 답글체계 이용, 여러개 등록가능, 각 업데이트글에 각각 댓글 가능
- 댓글 : 원글에 대한 댓글
이렇게 쓰고 있습니다.

그러다보니 일이 복잡하네요. 게시물 리스트에서 답변글은 다 빼야하고, 최근 게시물에 나온 답변글(업데이트) 링크로 들어가면 답변글이 원글로 인식되어 메인 소개글로 나와버려서 링크도 수정해야하고... 답변글 링크로 들어왔을 때 두번째 답변글 탭도 열려야 하고...
다시한번 감사하다는 말씀 드립니다. 즐거운 한주 맞이하세요.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT