답글형 게시판 분석

답글형 게시판 분석

(2015/3/24 화요일 22:55)

 

우선 글의 종류를 구분해 두겠다.

 

1. 최고 조상글: 루트의 루트의… 의 루트. 최고 조상글을 말한다.

 

2. 루트: 답글달려고 했던 원글을 말한다.

 

3. 내 글: 내가 쓴 글이다. 내가 쓰는 답글, 내가 삭제하려는 답글을 뜻한다.

 

1. 새 글을 쓸 경우

구분 내 글 처리하는 법 기타
no

글쓸 때마다 자동증가 (MAX+1)

gi

no

gs(순서)

0

 

gt(탭)

0

root

0

depth

0

 

요약하면, n / n / 0 / 0 / 0 / 0 을 대입하면 된다.

 

2. 답글을 쓸 경우

구분 내 글 처리하는 법 기타
no

글쓸 때마다 자동증가 (MAX+1)

gi

최고조상의 no

gs(순서)

루트gs+1

이어서,

gi가 내 글의 gi와 같고,(=같은 그룹이고)

gs가 내 글의 gs보다 크거나 같은(=내 글보다 순서가 늦는)

모든글의 gs를 +1   —(A)

gt(탭)

루트gt+1

root

루트no

depth

0

루트의 depth를 +1   —(B)

 

요약하면, n / 조상n / 뤁+1 / 뤁+1 / 루트 / 0 이다.

다만, (A)나와 같은 그룹의, 루트보다 순서가 늦는 글의 순서(gs)를 +1 해주고,

(B)루트의 뎁스를 +1 해주면 된다.

 

3. 삭제한다면

(삭제하는 내 글의 depth가 == 0 이라면)

구분 내 글 처리하는 법 기타
no

DELETE

gi
gs(순서)

gi가 내 글의 gi와 같고,(=같은 그룹이고)

gs가 내 글의 gs보다 큰(=내 글보다 순서가 늦는)

모든글의 gs를 -1

gt(탭)
root
depth 루트의 depth를 -1 

 

(삭제하는 내 글의 depth가 >0 이라면)

구분 내 글 처리하는 법 기타

제목만 삭제되었다고 바꾸기

(del=1)

gi가 내 글의 gi와 같고,

root가 내 글의 root와 같은  게시물<A’>이 모두 del=1이고

나의 루트<B’>가 del=1일때

A’,B’ 모두 DELETE 그리고,

B’의 루트(루트의 루트) depth를 -1

 

​(=그룹번호 내에서 같은 루트의 게시물들이 모두 삭제당했고,

나의 루트마저 다 삭제되었다면

루트부터 아래까지 싹 삭제한다)