위키에서는 인터넷에 오른 원문(하나의 게시물)에 대하여 짤막하게 답하여 올리는 글.
같은 말로는 '답글'이라고 정의한다.
댓글은 하나의 게시물에 대하여 작성한 글이기 때문에 글읽기 페이지에서 대부분의 기능이 이루어진다.
하나의 게시물 번호(BRDNO)에 대하여 다수의 댓글(RENO)을 가지는 형태로 구성된다.댓글을 저장하는 테이블(TBL_BOARDREPLY )은
게시판과 유사한 테이블 구조로 다음 SQL문과 같이 구성되어 있다.
CREATE TABLE TBL_BOARDREPLY (
BRDNO INT(11) NOT NULL, -- 게시물 번호
RENO INT(11) NOT NULL, -- 댓글 번호
REWRITER VARCHAR(10) NOT NULL, -- 작성자
REMEMO VARCHAR(500) DEFAULT NULL, -- 댓글내용
REDATE DATETIME DEFAULT NULL, -- 작성일자
REDELETEFLAG VARCHAR(1) NOT NULL, -- 삭제여부
PRIMARY KEY (RENO)
)
댓글 테이블 처리를 위해 다음과 같이 BoardReplyVO를 생성해야 한다.
public class BoardReplyVO { private String brdno; private String reno; private String rewriter; private String redeleteflag; private String rememo; private String redate;
public String getBrdno() { return brdno; }
public void setBrdno(String brdno) { this.brdno = brdno; } ~~ 생략 ~~ |
BoardReplyVO.java
하나의 게시물 번호(BRDNO)에 대하여 다수의 댓글(RENO)을 가지는 형태이기 때문에
키 구성은 게시물 번호(BRDNO)와 댓글번호(RENO)의 복합키로 구성하는 것이
데이터베이스 설계원칙에 맞지만 여기서는 댓글번호(RENO)만 키로 구성한다.
복합키를 사용하면 매 처리마다 키값들을 가지고 다니면서 처리해야 하기 때문에 프로그램이 복잡해 진다.
간편한 개발을 위해 댓글번호(RENO)만 기본키로 구성하였다.
글읽기 화면 하단에
댓글 작성을 위한 입력 화면이 있고, 그 아래에 기존에 작성된 댓글의 리스트가 출력된다.
댓글 리스트는 수정/삭제를 하기 위한 버튼이 필요하고
수정일 경우에는 댓글 수정을 위한 입력 화면이 있어야 한다.
글을 작성한 작성자만이 해당 댓글을 수정할 수 있게 하기 위해서는
현재 로그인한 사용자가 필요한데 여기서는 게시판만 만들기 때문에 이러한 기능이 없다.
따라서 작성자 이름과 내용을 입력하고 아무나 수정/삭제 할 수 있게 구성하였다.
비밀번호를 입력 받아서 처리하는 것도 좋은 방법인데
개념 파악을 위해 간단하게 구현하였고
이 소스를 실제 개발에 사용할 경우 작성자 이름(REWRITER)을 작성자 아이디(ID)로 바꿔서 사용할 수 있다는 걸 고려했다.
삭제는 댓글 번호(RENO)를 받아서 삭제 처리하면 간단하게 처리되지만
수정은 자바 스크립트와 관련된 조금의 기교가 필요하다.
예로, 열 개의 댓글이 있을 경우
열 개의 입력상자(Text, TextArea)를 만드는 경우가 대부분이다.
열 개의 입력상자를 숨겨놓고(display:none)
사용자가 수정 버튼을 누르면 해당 입력 상자를 보여주는(display:””) 방식으로 개발한다.
댓글 리스트는 페이징 처리를 하지 않는 경우가 많은데
100개의 댓글이 있으면 100개의 입력상자가 생성되기 때문에 선호하지 않는다.
개인적으로
하나의 입력상자를 이용하여 수정하고자 하는 해당 댓글 위치에 옮겨 넣는 방식을 선호한다.
마지막으로 게시판 리스트에서 해당 게시물의 댓글 수를 보여주면 된다.
'Java > 게시판 5: 댓글' 카테고리의 다른 글
2. 댓글 쓰기 (2) | 2016.05.15 |
---|---|
3. 댓글 리스트 / 삭제 (0) | 2016.05.15 |
4. 댓글 수정 (1) | 2016.05.15 |