답글 알고리즘 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에게 있으나 사용하는 것은 어떠한 용도로든 가능합니다