저는 다음과 같이 생각해 보았습니다.
다음과 같이 하면 어떨까 하구요
Depth가 3이상의로 내려가는 경우가 그리 많지 않은 경우(대부분 그렇지 않을까 생각합니다.- 성격에 맣도록 다르게 구현)
이렇게 하면 insert에 경우에도 어느정도 속도 저하를 커버할수 있지 않을까 생각해 봅니다.
delete 의 경우에는 자식 node가 없을경우에만 그냥 지우도록 한다.
지워지고 나서 다른 node들의 thread-order는 그냥 둔다.
자식 노드가 있의면 지우지 않고 제목을 (지워진 node임)의로 바꾸는것이 자식들의 계층에도 좋을거 같습니다.
first - option
second - option
third - option
#-- 게시판 insert --
3
5
7
0
1
8
13
16
15
17
18
2
6
10
11
14
4
9
12
#-- DB insert --
key first second third thread-order depth
0 1 0 0 0 0
1 1 1 0 0 1
2 1 2 0 0 1
3 2 0 0 0 0
4 1 3 0 0 1
5 2 1 0 0 1
6 1 2 1 0 2
7 2 1 1 0 2
8 1 1 1 0 2
9 1 4 0 0 1
10 1 2 1 1 3
11 1 2 1 2 4
12 1 5 0 0 1
13 1 1 1 1 3
14 1 2 2 0 2
15 1 1 2 0 2
16 1 1 1 2 4
17 1 1 2 1 3
18 1 1 3 0 2