게시판 구조는 일반형과 응답형 모두 지원하도록.
일반형으로만 할 경우 좀더 수월하고 성능에도 더 좋긴 하지만, 응답형을 포기할 수가 없어서.
응답형을 위해 3개의 추가 필드가 소요됨.
rid - root id
pid - parent id
depth - 글 깊이
그 외에 앞 뒤 글 연결을 위한 포인터 사용
previd,nextid 사용.
포인터를 이용해, 이전 글, 다음 글 빠르게 접근 가능.
but,, 검색 등의 결과물에서의 앞 뒤 글 에 대한 문제가 존재.
즉, 포인터는 일반 리스팅에서만 사용 가능하다.
그러면, 포인터의 유용성이 조금 떨어지려나.
실제로 앞 뒤 글 읽을 때 이후는 사용할 일이 없다.
그럼 포인터를 사용 안 한다고 가정을 하자.
리스팅 상태에서 글을 읽을 경우.. 글 번호만을 id로 삼아 글을 호출한다.
view 상태에서 이전, 다음 글 목록 표시..
일반형 게시판에서는 쿼리를 별도로 사용함.
각 게시판 마다 일반형/응답형 모드를 선택 가능..
빠른 속도를 필요로 하고, 답글 기능이 필요 하지 않은 곳에서는 일반형으로 선택, 해당 쿼리 적용으로
속도 향상.
--------------------------------------------------------------------------------------------
글이 몇 번째 페이지에 있는지 알아내는 알고리즘..
글의 위치를 알면, 리스팅이 쉬워짐.
매 페이지마다 글의 위치 알아내기 위한 연산(db,php) 은 많은 부하를 가져올 수도 있음.
속도 테스트 필요..
일단은, 앞 뒤 포인터 만드는 걸로 작성하고,
뒤에 알고리즘 개발시, 포인터 필드 삭제..
'프로그래밍' 카테고리의 다른 글
글(컨텐츠) 이 위로 스크롤 되는 롤링 div 만들기 (0) | 2008.05.21 |
---|---|
응답형 게시판 알고리즘 1 (1) | 2008.03.30 |
[보리보드] DB 설계 작업 (0) | 2008.02.21 |
[JSP] string 출력시 한글 안깨지게 하기. (1) | 2007.07.16 |
[JSP+MYSQL] JSP에서 Mysql DB 읽어오기 (0) | 2007.07.16 |