YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

답글 알고리즘 v 1.1

페이지 정보

작성자 MintState 댓글 0건 조회 11,546회 작성일 08-10-29 17:26

본문

답글 알고리즘 v 1.1 

아랬글 보니까 적고 싶어지네여..구상한 바가 좀 있어서여^^;;

알고리즘과 관련있는 필드는 top level order 3개입니다. 그 외에 no 필드와 tltle 필드를 넣겠습니다.

제 알고리즘의 목적은 필드를 최소화하고 관련글 추적을 최적화하며, 쿼리를 단 1~2개로 유지시키는 겁니다(거창합니다~). 게시물이 많아져도 옛날 글(1번글 따위)에 답글을 왕창 달지 않는 한 최소의 수정을 하도록 "노력"하고 있습니다;;

처음 테이블에 글이 3개 있습니다.

no필드와 tltle필드는 뭐;;
top필드는 가장 윗단계의 글의 번호입니다. 답글이 아니면 그 글의 번호, 답글이면 최상위 글의 번호입니다.
level필드는 글의 답글 레벨입니다. 0이면 그냥 글, 1이면 답글, 2면 답글의 답글;;
order필드는 출력 순서를 결정합니다. 실제로 가장 중요한 역할을 하게 됩니다.



출력할 때는 order필드의 역순으로 출력합니다.



이렇게 되겠죠.

"그 다음글"에 답글이 달립니다.



답글이 달린 원본 글(top가 같고 level이 1적은 글)이후의 글의 order를 1 증가시켜줍니다. 답글이 기존 글의 order번호를 갖습니다.
top는 원본 글의 top번호를 갖습니다.

출력할 때는 level만큼 들여쓰기해줍니다.



이렇게 되겠죠.

"세번쨰글"에 답글이 달려도 마찬가지입니다.



출력하면 역시



입니다.

이번엔 답글에 답글이 달립니다.

"re)딴지글"에 답글이 달리겠습니다.



order를 더 늘려줍니다.
level은 2가 됩니다.

출력하면



입니다.

이번 건 답글이 있는 글에 또 하나의 답글이 달리는 겁니다.
"세번째글"에 또 답글이 달립니다.



최신 답글이 위로 올라오게 합니다.

출력하면



가 되겠죠.


음;;산당히 써넣고도 까다로워 보입니다;;이게 제가 생각하는 한꼐인 것 같습니다...더 나은 게 떠오르지 않네여;;(첫 알고리즘을 만들었을떄도 이 소리 하구선 지금 이렇게 1.1이 되엇습니다;;;한 5개월 전쯤인가..;;)
많은 조언을 해주셨으면 하네여...이만요~^^

* 이 방식에 대한 copyright는 TheMics에게 있으나 사용하는 것은 어떠한 용도로든 가능합니다

댓글목록

등록된 댓글이 없습니다.

Total 165건 1 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
165 MintState 21140 10-28
164 MintState 13418 10-28
163 MintState 24122 10-28
162 MintState 13051 10-28
161 MintState 14503 10-28
160 MintState 23066 10-28
159 MintState 15914 10-28
158 MintState 12075 10-28
157 MintState 12493 10-28
156 MintState 11743 10-29
155 MintState 11649 10-29
154 MintState 12853 10-29
153 MintState 12194 10-29
152 MintState 10886 10-29
151 MintState 10988 10-29
150 MintState 9803 10-29
149 MintState 10588 10-29
148 MintState 12539 10-29
열람중 MintState 11547 10-29
146 MintState 11085 10-29
145 MintState 12267 10-29
144 MintState 14912 10-29
143 MintState 14812 10-29
142 MintState 14877 10-29
141 MintState 13441 10-29
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™