베스트 게시판 구현 관련 문의

베스트 게시판 구현 관련 문의

QA

베스트 게시판 구현 관련 문의

답변 4

본문

안녕하세요^^

 

베스트 게시판을 구현중에 있습니다.

 

일단.. 열공중님이 올려주셨던 스킨을 사용해보고 있는데요

https://sir.kr/g5_skin/42783

 

다만 문제점은.. 복사를 하게 되면 기존 게시글과 별도의 글로 되면서 

추천, 댓글, 조회수가 연동이 안됩니다.

 

이동을 하게 되면 이런 문제는 사라지겠지만

SEO에 불리하여 아예 제거가 되는 경우가 있다고 합니다..^^;

 

위 문제 뿐만 아니라 기존 게시글은 기존 게시판에 남기면서

베스트글을 따로 운영하고 싶은것도 있고요..

 

 

이렇게 하려면 결국 이동이나 복사가 아니라 연동을 해야할 것 같습니다.

다만.. 베스트 게시판은 하나의 게시판에서만 불러오는게 아니다보니

부하가 생기거나 비효율적인 방법들만 생각나고 있네요.. ㅠㅠ

 

게시글 클릭 시 원 게시글로 이동되도록 링크 방식으로 쓴다쳐도 조회수나 댓글 수를 가져와야하기 때문에

게시판별로 질의를 통해 가져와야할 것 같은 생각도 들고요..

 

어떻게하면 효율적으로 통합 베스트 게시판에서 각 게시판의 베스트글들을 모으면서

내용/추천/조회/댓글을 연동할 수 있을까요?

 

고수님들 도와주십쇼 (__)

이 질문에 댓글 쓰기 :

답변 4

https://ye-ah.net/best?page=1

제가 작성자분이 원하는 게시판과 동일한 베스트 게시판을 운영중에있습니다
저는 일정추천수가 되면 best DB테이블로 복사가됩니다 여기서 복사되는것은 g5_board_new 테이블 양식과 거의 동일합니다

g5_board_new테이블은 새글리스트를 불러오기위한 전체글 목록개념인데요 이걸 조금 응용해서 g5_board_best 테이블로 만들고 일정추천수가되면 복사되도록했습니다
 

그래서 베스트게시물을 모아서보여줄수있고 클릭하면 원본글내용이 출력되기때문에 다른 처리는 할게없었습니다

안녕하세요 Policia님^^

답변이 많이 늦었습니다.

게시글 작성 후 몇 가지 답변을 받아보다가 나중에 하려고 todo list에 넣어놓은 사이에
답변을 주셨고.. 그 이후 sir에 안들어오면서 Policia님 답변을 늦게 확인했네요^^;

결론은 Poilicia님이 조언 주신 방법으로 해결했습니다

g5_board_new 테이블을 가져와서 응용해서 만들었네요ㅎㅎ

도움주셔서 감사합니다!

안녕하세요! Policia님
참 조언을 많이 받아서 늘 감사한 마음을 가지고 있습니다!
새해에도 하시고자 하는일 잘 되시길 기원합니다!!!

다름이 아니오라 예아넷을 종종 들어가는데 문득 궁금한게 생겨서 여쭤봅니다!

들어가면 메인에 전체글! - 베스트글! 이렇게 있는데요
전체글 보면 글을 클릭한뒤에도 그 아래에...전체글 목록이 계속 유지가 되는걸 볼수가 있거든요.
(물론 베스트글도!)

그런데..전체글이 new.skin.php로 작업하신건지요? @.@
아니면 그냥 일반 보드를 기반으로 전체글을 불러오는 형식으로 작업하신건지요..

견문도 짧고 초보자라..마냥 신기해보여서요 @.@;; 막상해보려니깐..게시글 클릭하면
게시물 게시판으로 넘겨버리던데..어떤식으로 하신건지 궁금합니다!
복사도 아닌거 같고..

안녕하세요 헛둘헛둘님

일반게시판과 동일하게 보시면됩니다
예아넷의 경우 일반보드 스킨에 출력단만 전체,베스트 불러오는것만 추가했습니다

일반보드의 경우 상위 컨트롤러에서 bo_table로 구분하여 각 게시판 리스트,뷰를 가지고오게되어있는데
여기서 전체,베스트일 경우 조건만 추가해줬습니다

실제로 주소를 보면 지금은 축약 주소이지만
원주소는
전체글일때 > /bbs/board.php?bo_table=all
베스트일때 > /bbs/board.php?bo_table=best
입니다

예 일반게시판 출력과 별반다를바 없지요
근데 두 게시판 테이블에는 각 연결된 테이블 번호만 들어있는 DB상태여서
여기서 각각 게시판정보를 넣어줄 필요가있습니다(그래야 회원정보,추천정보등을 들고올수있기때문에)
그래서 전체,베스트글일때는 left join으로 해당하는 게시글을 연결시켜주고있습니다

와! 신기한거 배웠습니다! 아직 초심자라서 아둔해 좀 버벅거리긴하지만

한번 도전해봐야겠습니다!! @.@; 감사합니다!!

그런데 left join 이라고 하심은 left outer join을 말씀하시는거지요? 제가 완전 초심자라

말귀를 잘 못알아먹는게 있어서 ㅠ.ㅠ

기존 게시물을 삭제하지말고

복사한? 곳으로

포워딩하면 되지 않을까요?

의견 감사드립니다. 한 번 이것도 생각해보겠습니다.

제가 홈페이지를 만들어서 운영해본 경험이 많이 없다보니..
혹시 검색 엔진에서 해당 내용이 포워딩 내용으로 바뀔 경우 불이익을 받진 않을까요?

아직까지 알려진 크게 좋은 방법이 없습니다.

 

차선으로 생각해 볼 수 있는 방법은, 

 

[새 글] 페이지를 응용하는 방법입니다. https://demo.sir.kr/gnuboard5/bbs/new.php

 

해당 소스를 참고하여, [베스트 게시글] 조건을 추가해주면 됩니다.

(조건이 조회수인 경우 새글 DB 에 조회수 칼럼 및 인덱스 추가 필요, 글 조회시 해당 테이블에도 카운트 처리 필요)

 

이런 경우 단점은 두 가지인데.. 

 

하나는, 새 글의 기간제한 조건이 있고 (관리자 환경설정 새글 보관 기간)

 

또 하나는, 그누보드의 새 글 추출 방식에 원래 있는 약간의 부하가 발생한다는 점이 있습니다.

코드 봐보니.. 왜 부하가 발생한다는지 알 것 같습니다 ㅎㅎ..

게시글 번호, 제목, 작성 날짜 정도 복사 후 댓글과 조회수는 결국 원글 데이터를 가져와서
list 에서 보여주는 방식이군요..

(잘 모르지만..^^;) 부하가 조금 생기는 방법이다보니 다른 방법을 찾고 있었는데
이 방법을 따라가야할 것 같은 느낌이네요 ㅠㅠ

다른분들의 답변 처럼, 더군다나 별도의 운영까지 고려될 정도면

결국 원본테이블과는 따로 떼어내는게 맞는것 같고

기준도달시 PK 값(wr_id ?)만 따로 베스트쪽에 저장하고

필요한곳에서 IN(string PK) 또는 BETWEEN(number PK) 으로 쿼리하면 좋을것 같습니다.

 

답변 주셔서 감사합니다^^ g5_board_new 와 비슷한 방식으로 해결하는 방향으로 잡았네요!

조언주신 방법이 정석같이 좋은 방법인거 같은데 제가 쿼리쪽이 약하다보니
다른 테이블을 참고하는 방식으로 진행하였습니다 ㅠ

조언 감사합니다 (__)

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