댓글 테이블을 만들었다
CREATE TABLE REPLY(
RID INT PRIMARY KEY,
CONTENT VARCHAR(100) NOT NULL,
MID VARCHAR(30) NOT NULL,
REGDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 날짜
BID INT NOT NULL -- 댓글을 단 글의 번호
);
순서대로
댓글ID
댓글내용
작성자ID
댓글 단 날짜
몇 번 글에 댓글을 남겼는지
를 담는 변수들이다
회원 탈퇴는 이미 구현된 상태이고
회원 탈퇴를 하면 댓글도 삭제가 되도록
만들려고 한다
댓글을 삭제하는 방법 2가지
1) M에서 SQL로 (DBMS 제약조건으로) 처리하는 방법
위에서 테이블 설계시 PK, NOT, NULL, DEFAULT 등이 제약 조건에 해당이 된다
회원탈퇴를 가지고 있는 MEMBER가 삭제되면 댓글도 삭제된다는 제약조건을 추가하면 된다
이미 만든 테이블에 제약 조건을 추가하고 싶은 경우 ALTER 명령어를 사용하면 된다
하지만 설계 이후 테이블 수정을 하는 일은 극히 드물기 때문에 ( = 설계가 잘 못되었다는 뜻 )
DROP을 하고 CREATE를 다시 하는 걸 추천한다
2) C에서 로직(JAVA로) 처리하는 방법
1) M에서 SQL로 (DBMS 제약조건으로) 처리하는 방법
CREATE TABLE REPLY(
RID INT PRIMARY KEY,
CONTENT VARCHAR(100) NOT NULL,
MID VARCHAR(30) NOT NULL,
-- 조건 추가
CONSTRAINT FK_MEMBER_REPLY
FOREIGN KEY (MID)
REFERENCES MEMBER(MID)
ON DELETE CASCADE,
-- CONSTRAINT [외래키 제약조건명]
-- FOREIGN KEY (FK컬럼명)
-- REFERENCES 상대테이블명(상대방PK)
-- ON DELETE CASCADE,
REGDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 날짜
BID INT NOT NULL -- 댓글을 단 글의 번호
);
2) C에서 로직(JAVA로) 처리하는 방법
else if(command == 5) {
String passwd = view.inputPasswd(); // 비번을 입력받아서
// 현재 로그인한 사람 + 새로 입력받은 비번 >> 올바른지 체크 == 재로그인
MemberDTO memberDTO = new MemberDTO();
memberDTO.setCondition("LOGIN");
memberDTO.setMid(userInfo.getMid()); // 현재 로그인한 사람
memberDTO.setPasswd(passwd); // 새로 입력받은 비번
memberDTO = memberDAO.selectOne(memberDTO);
if(memberDTO == null) {
view.printFun02();
continue;
}
// 모든 글 테이블의 정보들을 확인하며
// 탈퇴한 사용자가 작성한 글은 없는지 체크
// 글이 존재한다면 해당 글 작성자를 null로 변경
BoardDTO boardDTO = new BoardDTO();
boardDTO.setCondition("MEMBER");
boardDTO.setMid(memberDTO.getMid());
boardDAO.update(boardDTO);
// -> 작성자 이름 null로 바꾸기
// 삭제 진행
boolean flag = memberDAO.delete(memberDTO); // 작성자 delete
// 실패...
if(flag) {
userInfo = null; // 로그아웃 처리
view.printFun01();
}
else {
view.printFun02();
}
}
'DBMS' 카테고리의 다른 글
| 테이블 PK 자동으로 부여하기 (SELECT NVL(MAX(PK), 100) FROM BOARD) + 1 (0) | 2025.11.12 |
|---|---|
| SQL 테이블 생성 & 삭제 & 조회 & 정렬 (0) | 2025.11.12 |
| 두 개의 테이블 JOIN 하기 (1) | 2025.11.05 |
| sql 사용 준비 (0) | 2025.10.31 |
| DBMS로 오라클 유저 만들기 | eclips와 연동하기 (0) | 2025.10.30 |