리눅스 개발/PHP게시판 및 소스

답변형게시판 알고리즘-비업데이트형

꿈꾸는새벽별 2011. 10. 21. 03:35

답변형 게시판

1. 유형 : 최근글이 위부터 출력되며, 답변은 최근글이 아래로 출력되도록...

    1) 비업데이트형(o) : 개인적으로 업데이트형은 싫어해서리...;;; 데이터수의 증가에 따른 압박이랄까...;

    2) 업데이형(x)

    3) 반업데이트형(x)

2. 필드는 일반적인 형태의 3개 필드 필요 :

    1) ori_idx : 최상위 그룹정도 랄까나...

    2) depth  : 답변 들여넣기 용도

    3) step  :  답변형 게시판의 핵심이고.. 게시판 알고리즘 중 이부분에서 세부분화 되는 부분이 많다..

                   기존 게시판은 답변이 존재하면 삭제를 못하게 하는 방식도 있고... 머 잘된 소스도 굉장히 많다...;;

                   다만 초보인 나로써의 방식은 해당글의 답변은 그냥 지우게 하고 싶다는...ㄷㄷㄷ;

                   (최상의 번호로 지우면 해당관련글은 다 삭제되나.. 중간계층 답변만 삭제시에는 오히려 불편하다는...)

   방식은..

php 에서  length설정

ori_idx     |       depth        |       step

    1                   0                       a               :          원글

    1                   1                       a01            :          1단계 답변1

    1                   2                       a0101         :          2단계 답변1

......

    1                   1                       a10            :          1단계 답변10

    1                   2                       a1001         :          답변10에 대한 2단계 답변1

    1                   1                       a11            :          1단계 답변11

 

 

이런식으로... ori_idx  DESC, depth ASC 정렬 시키면 됨..

length 설정이유는...

2 length 설정시 : 99개까지 답변가능 / 127 개까지 스텝가능

3 length 설정시 : 999개까지 답변가능 / 84 개까지 스텝가능
4 length 설정시 : 9999개까지 답변가능 / 63 개까지 스텝가능
varchar(255)로 데이터 필드 설정시

 

비슷한 방식이라면... step을  AAB 같은 알파벳으로 표현한게 있으나 26개의 한계라는점.. 묶었을 경우 편하기는 하나..

문자열 처리방식이라는 점이 맘에 안들어서.. 더해가는 개념이 문자+1의 형태보다 숫자 형태가 더 적합하다고 생각되어

숫자형태로 처리함.. (생각의 귀차니즘~)

 

좋지않은 방법일지도 모르고 다른 사람이 먼저 생각했을 지도 모르나..

내가 생각한거라..그냥 기록해놓은거고 이게 편함 ㅡ.ㅡ;;;

 

글삭제시에도.. depth에서 a10% 인 것들 삭제하면 되니..답변 존재 유무 확인할 필요가 없으니..

원글없는 답변은 의미없다고 생각하므로..!!

나름 개인적인 생각이었슴돠...-,.-;

 

str_split를 사용하고 싶었으나..서버가 php4를 지원하는 바람에.. ㅡㅜ

preg_match_all("/[0-9]{".$length."}/", $step_res['MAX(step)'], $once_arr_step); 요걸 활용했다는..

 

이외에는 다른 게시판 소스랑 별로 다를게 없음..ㅡㅡㅋ