게시판의 답변 알고리즘에 대해서..

xyhan의 이미지

예전부터 게시판 프로그램을 짤때..
이 답변 알고리즘의 성능이나 복잡함에..
새로운 루틴을 하나 만들고 싶다는 생각을 많이 했습미다..
제가 책에서 본 답변 알고리즘은 두개 인데..

첫번재는..

Quote:

원본의 글이 " A" 값을 가지고 있고..
이 답글에는 AA,AB,AC 이런 식으로 열거가 되는 거죠..
물론 AA,의 처음 답글은 AAA가 되는 거고요..

Quote:

두번째 방법은 no,gno,ono,nested 네 변수를 이용해서,
첫 글은 1,1,0.0 이에 첫 답변은 1,1,1,1 두번째는 부터는
"
1,1,0,0
3,1,1,1
2,1,2,1
"
"
5,2,0,0
1,1,0,0
3,1,1,1
4,1,2,2
2,1,3,1
"

첫번째 방법을 보았을때도 상당히 비효율적이다 라고 생각했는데..
두번째 방법을 보았을때는 이렇게 .. 짜도 성능에 지장은 없는것인가
생각이 들더군요.. 물론 게시판의 특성상 그럴 리는 없겠지만요..

그래서인지 대규모 사이트들에서는 리플 기능이 존재 하지 않턴가
ILoveSchool처럼 리플을 달면 그글 이 멘 위로 가서 어떤 글에대한
리플인지만 가르켜주는 방식을 쓰더군요..

첫번째 방법이 그냥 보았을때는 상당히 좋습미다. 하지만 DB에서
"A"에 대한 답변 마지막 글을 찾는 SQL 쿼리가 좀 복잡합미다..
어떤 식으로든 DB쪽에 무리가 갑미다..
그래서 제가 생각한 방법이란 "A" 답변 글에 대한 마지막 답변 글의
데이타 정보를 기억 시키는 방법으로 루틴을 단순화 시키는 것입미다.
"A"에 "A"의 리플인,
"AA","AB","AC","AD" 의 마지막 글 "D"를 저장 하는 필드를
하나 만드는 것입미다.. 그럼으로써 다음 답변 글의 값을
쉽게 찾을수 있게 하는 겂미다.
물론 이 루틴의 경우 문자열이 어디까지 허용 하느냐에 따라서
하나의 리플이 200개 이상이 만들어지지 못 할지도 모르겠습미다.

정말 DB에 무리가 안가는 좀더 단순한 리플 알고리즘은..
없는지 묻고 십습미다..

keizie의 이미지

phpschool.com에서 최적의 게시판 알고리즘은 무엇인가로 일대 혈전이 벌어지기도 했습니다.
그 결과로 나왔다 사라진 게시판도 부지기수죠.