本文へスキップ

답글 알고리즘 v 1.1

MintState 2008年10月29日 17:26 閲覧 12668

답글 알고리즘 v 1.1

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

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

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

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

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

no  top  level  order  title 
1   1    0      1      첫글 
2   2    0      2      그 다음글 
3   3    0      3      세번째글 

 

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

번호  제목 
3     세번째글 
2     그 다음글 
1     첫글 

 

이렇게 되겠죠.

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

no  top  level  order  title 
1   1    0      1      첫글 
2   2    0      2+1=3  그 다음글 
3   3    0      3+1=4  세번째글 
4   1    1      2      re)딴지글 

 

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

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

번호  제목 
4     세번째글 
3     그 다음글 
2      re)딴지글 
1     첫글 

 

이렇게 되겠죠.

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

no  top  level  order  title 
1   1    0      1      첫글 
2   2    0      3      그 다음글 
3   3    0      4+1=5  세번째글 
4   1    1      2      re)딴지글 
5   3    1      4      re)또 딴지글

 

출력하면 역시

번호  제목 
5     세번째글 
4      re)또 딴지글 
3     그 다음글 
2      re)딴지글 
1     첫글

 

입니다.

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

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

no  top  level  order  title 
1   1    0      1      첫글 
2   2    0      3+1=4  그 다음글 
3   3    0      5+1=6  세번째글 
4   1    1      2+1=3  re)딴지글 
5   3    1      4+1=5  re)또 딴지글 
6   1    2      2      re)뭐라구? 

 

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

출력하면

번호  제목 
6     세번째글 
5      re)또 딴지글 
4     그 다음글 
3      re)딴지글 
2       re)뭐라구? 
1     첫글 

 

입니다.

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

no  top  level  order  title 
1   1    0      1      첫글 
2   2    0      4      그 다음글 
3   3    0      6+1=7  세번째글 
4   1    1      3      re)딴지글 
5   3    1      5      re)또 딴지글 
6   1    2      2      re)뭐라구? 
7   3    1      6      re)다른 답글 

 

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

출력하면

번호  제목 
7     세번째글 
6      re)다른 답글 
5      re)또 딴지글 
4     그 다음글 
3      re)딴지글 
2       re)뭐라구? 
1     첫글

 

가 되겠죠.

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

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

共有 X Facebook LINE QR コード

コメント 0 件

最初のコメントを書いてみましょう。