베스트 게시판 구현 관련 문의 채택완료
안녕하세요^^
베스트 게시판을 구현중에 있습니다.
일단.. 열공중님이 올려주셨던 스킨을 사용해보고 있는데요
다만 문제점은.. 복사를 하게 되면 기존 게시글과 별도의 글로 되면서
추천, 댓글, 조회수가 연동이 안됩니다.
이동을 하게 되면 이런 문제는 사라지겠지만
SEO에 불리하여 아예 제거가 되는 경우가 있다고 합니다..^^;
위 문제 뿐만 아니라 기존 게시글은 기존 게시판에 남기면서
베스트글을 따로 운영하고 싶은것도 있고요..
이렇게 하려면 결국 이동이나 복사가 아니라 연동을 해야할 것 같습니다.
다만.. 베스트 게시판은 하나의 게시판에서만 불러오는게 아니다보니
부하가 생기거나 비효율적인 방법들만 생각나고 있네요.. ㅠㅠ
게시글 클릭 시 원 게시글로 이동되도록 링크 방식으로 쓴다쳐도 조회수나 댓글 수를 가져와야하기 때문에
게시판별로 질의를 통해 가져와야할 것 같은 생각도 들고요..
어떻게하면 효율적으로 통합 베스트 게시판에서 각 게시판의 베스트글들을 모으면서
내용/추천/조회/댓글을 연동할 수 있을까요?
고수님들 도와주십쇼 (__)
답변 4개
https://ye-ah.net/best?page=1 제가 작성자분이 원하는 게시판과 동일한 베스트 게시판을 운영중에있습니다 저는 일정추천수가 되면 best DB테이블로 복사가됩니다 여기서 복사되는것은 g5_board_new 테이블 양식과 거의 동일합니다
g5_board_new테이블은 새글리스트를 불러오기위한 전체글 목록개념인데요 이걸 조금 응용해서 g5_board_best 테이블로 만들고 일정추천수가되면 복사되도록했습니다
그래서 베스트게시물을 모아서보여줄수있고 클릭하면 원본글내용이 출력되기때문에 다른 처리는 할게없었습니다
답변에 대한 댓글 5개
참 조언을 많이 받아서 늘 감사한 마음을 가지고 있습니다!
새해에도 하시고자 하는일 잘 되시길 기원합니다!!!
다름이 아니오라 예아넷을 종종 들어가는데 문득 궁금한게 생겨서 여쭤봅니다!
들어가면 메인에 전체글! - 베스트글! 이렇게 있는데요
전체글 보면 글을 클릭한뒤에도 그 아래에...전체글 목록이 계속 유지가 되는걸 볼수가 있거든요.
(물론 베스트글도!)
그런데..전체글이 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을 말씀하시는거지요? 제가 완전 초심자라
말귀를 잘 못알아먹는게 있어서 ㅠ.ㅠ
left outer join의 축약이 left join입니다
댓글을 작성하려면 로그인이 필요합니다.
다른분들의 답변 처럼, 더군다나 별도의 운영까지 고려될 정도면
결국 원본테이블과는 따로 떼어내는게 맞는것 같고
기준도달시 PK 값(wr_id ?)만 따로 베스트쪽에 저장하고
필요한곳에서 IN(string PK) 또는 BETWEEN(number PK) 으로 쿼리하면 좋을것 같습니다.
답변에 대한 댓글 1개
조언주신 방법이 정석같이 좋은 방법인거 같은데 제가 쿼리쪽이 약하다보니
다른 테이블을 참고하는 방식으로 진행하였습니다 ㅠ
조언 감사합니다 (__)
댓글을 작성하려면 로그인이 필요합니다.
아직까지 알려진 크게 좋은 방법이 없습니다.
차선으로 생각해 볼 수 있는 방법은,
[새 글] 페이지를 응용하는 방법입니다. https://demo.sir.kr/gnuboard5/bbs/new.php
해당 소스를 참고하여, [베스트 게시글] 조건을 추가해주면 됩니다.
(조건이 조회수인 경우 새글 DB 에 조회수 칼럼 및 인덱스 추가 필요, 글 조회시 해당 테이블에도 카운트 처리 필요)
이런 경우 단점은 두 가지인데..
하나는, 새 글의 기간제한 조건이 있고 (관리자 환경설정 새글 보관 기간)
또 하나는, 그누보드의 새 글 추출 방식에 원래 있는 약간의 부하가 발생한다는 점이 있습니다.
답변에 대한 댓글 2개
첨부해주신 링크를 확인해보니 딱 원하는 느낌이네요
부하는 코드를 봐봐야겠지만..
new.php 소스 코드를 한 번 봐보겠습니다^^
감사합니다.
게시글 번호, 제목, 작성 날짜 정도 복사 후 댓글과 조회수는 결국 원글 데이터를 가져와서
list 에서 보여주는 방식이군요..
(잘 모르지만..^^;) 부하가 조금 생기는 방법이다보니 다른 방법을 찾고 있었는데
이 방법을 따라가야할 것 같은 느낌이네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
답변이 많이 늦었습니다.
게시글 작성 후 몇 가지 답변을 받아보다가 나중에 하려고 todo list에 넣어놓은 사이에
답변을 주셨고.. 그 이후 sir에 안들어오면서 Policia님 답변을 늦게 확인했네요^^;
결론은 Poilicia님이 조언 주신 방법으로 해결했습니다
g5_board_new 테이블을 가져와서 응용해서 만들었네요ㅎㅎ
도움주셔서 감사합니다!