로그인 및 회원가입을 완료해야하는데 취업을 하고 나서 시간이 없다...😅
갑자기 답글 게시판을 포스팅 하려는 이유도 만들어야 하기 때문에..
사실 예전에 학교에서 만든적이 있는데 역시나 다시 하려니 찾아보게 된다..(머쓱
.
.
쨌든 답글이 없는 게시판을 만들 때는 단지 게시판에 사용되는 정보만 담을 엔티티가 있으면 되지만,
답글이 있는 게시판을 만들기 위해서는 총 세개의 엔티티가 더 필요하다!
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE BOARD( BOARD_NUM int not null primary key auto_increment, BOARD_SUBJECT VARCHAR(50), BOARD_CONTENT text, BOARD_RE_REF int, BOARD_RE_LEV int, BOARD_RE_SEQ int, BOARD_READCOUNT int, BOARD_DATE date ); | cs |
우리는 여기서 BOARD_RE_REF, BOARD_RE_LEV, BOARD_RE_SEQ 이 친구들을 중점적으로 살펴보려한다. 나머지 엔티티는 보다시피 게시판에 나타낼 게시판 번호, 제목, 내용, 조회수, 날짜 등이다.
그렇다면 저 세명의 엔티티가 누구일까?
BOARD_RE_REF : 해당글이 참조하고 있는 글번호, 부모 번호 ( 자기 자신일 경우 자신의 글 번호 )
BOARD_RE_LEV : 부모 게시글에 소속된 게시글의 순서
BOARD_RE_SEQ : 답글에 답글일 수록 커지는 값 ( 부모:1, 부모에 대한 답글:2, 답글에 대한 답글:3 )
이해를 돕기 위해 아래에 참고 블로그를 걸어 놓겠다. 예제가 잘 정리되어 있으니 참고하자.
참고 : http://ssmlim.tistory.com/7
.
.
이어서 글 목록을 가져오기, 글 쓰기 부분의 쿼리를 정리하고 마무리 하겠다 :)
해당 쿼리는 글 목록을 가져오는 부분이다.
게시글은 처음 최신순을 가져와서 보여주기 때문에 부모 번호를 ( BOARD_RE_REF ) 내림 차순 한뒤,
답글의 위치 ( 답글의 깊이 BOARD_RE_SEQ )를 오름차순하여 받아왔다.
이때 limit 부분은 페이징을 위해 사용해 주었다.
원글 또는 답글을 쓰는 경우에는 아래의 쿼리문을 실행 하였다.
1 2 | insert into board (BOARD_SUBJECT, BOARD_CONTENT, BOARD_RE_REF, BOARD_RE_LEV, BOARD_RE_SEQ, BOARD_READCOUNT, BOARD_DATE) values(...)";Colored by Color Scripter | cs |
단, 답글 또는 답글에 대한 답을 을 쓰는 경우 부모글의 BOARD_RE_REF, BOARD_RE_LEV, BOARD_RE_SEQ를 변수에 담아 준 뒤
1 | update board set BOARD_RE_SEQ=BOARD_RE_SEQ+1 where BOARD_RE_REF=? and BOARD_RE_SEQ>?"; | cs |
내가 쓰려는 답글보다 아래에 위치한 친구들의 BOARD_RE_SEQ번호를 1씩 증가 시켜준다.
그리고 나서 원글과 같이 INSERT 문을 실행 시 순번을 나타내는 BOARD_RE_LEV과 답글의 깊이인 BOARD_RE_SEQ에 각각 + 1을 해준뒤 실행 시켜준다.
현재 내가 만들어야 하는 게시판에서는 답글을 하나만 달면 되는 QnA게시판 이므로
아마 BOARD_RE_SEQ와 UPDATE문은 사용되지 않을 것 같지만 언젠간 사용할 수도 있으므로 정리해봤다. 끝!
'~ 2024.08' 카테고리의 다른 글
Notepad++ ftp로 서버와 연결하기 (1) | 2018.11.20 |
---|---|
웹 사이트 제작 구조 ( 코딩 방식 ) (1) | 2018.11.13 |
회원가입 및 로그인 페이지 만들기 03 (0) | 2018.10.30 |
XAMPP MySQL 비밀번호 분실시 변경 하기 (5) | 2018.10.29 |
회원가입 및 로그인 페이지 만들기 02 (0) | 2018.10.29 |