728x90

2020-10-30 수정 ::

 

원본 게시글이 있는 테이블 ( board )

삭제된 게시글을 모아두는 테이블 ( board_delete )

 

 

1번 게시글 ( idx = 1) 삭제를 누르게 되면 두가지 쿼리를 날립니다. 

 

1. 게시글 삭제 테이블로 이동( 복사 )

  INSERT INTO board_delete SELECT*FROM board WHERE idx='1'

2. 원본 테이블 게시글 삭제

  DELETE FROM board WHERE idx='1';

 

이렇게 게시글을 다른 테이블( 삭제 게시글을 모아둔 테이블 )로 이동시켜 줍니다.

그리고 일정 기간이 지나거나 회원이 탈퇴를 했을 때 게시물을 폐기 시킵니다.

 

이렇게 바꾼 이유는 두가지 정도가 있습니다.

1. 페이징 처리시 LIMIT를 이용할 때 문제가 된다.

이전 방법( isDelete == Y & N )로 게시글을 표시하면

SQL문( SELECT * FROM board ORDER BY idx DESC LIMIT $start_num, $list; )을 이용할때

idx 1~10 이 모두 삭제된 게시물이면 페이지에 게시글이 보이지 않을 수도 있음.

( SQL문을 수정하는 방법으로 해결 할 수도 있지만... )

 

2. 관리가 편하다.

삭제글 전용 테이블을 하나 만들었기 때문에 가독성도 좋고 따로 관리하기 편함.

 

더 나은 방법이 있으면 댓글로 알려주세요 업데이트 하겠습니다.

 

=========================================

 

이전글::

저는 게시글등을 삭제할때 DELETE 쿼리를 이용하지 않았습니다.

대신 isDelete 라는 컬럼을 생성하고 기본값을 N으로 주었습니다.

그후 게시글 삭제시 UPDATE 쿼리로 isDelete를 Y로 바꿔주었습니다.

게시글 목록은 isDelete가 N인 게시물만 노출되게 해주었습니다.

 

게시글 데이터를 바로 삭제하지 않는것은 여러가지 이유가 있습니다.

하지만 유저가 삭제한 데이터를 무한정 가지고 있을 수는 없습니다.

그래서 게시글 삭제 이후 3개월(임의로 지정한 기간)이 되었을때 삭제하고 싶었습니다.

게시글이 삭제된 시간을 기록하는 칼럼을 만들어서 관리하면 될것 같습니다.

 

이 글은 게시판을 만들면서 생각한 내용의 일부를 정리했습니다.

 

계속 업데이트할 예정입니다.

2020-10-30 수정 ::

 

원본 게시글이 있는 테이블 ( board )

삭제된 게시글을 모아두는 테이블 ( board_delete )

 

 

1번 게시글 ( idx = 1) 삭제를 누르게 되면 두가지 쿼리를 날립니다. 

 

1.INSERT INTO board_delete SELECT*FROM board WHERE idx='1'; // 게시글 복사

2.DELETE FROM board WHERE idx='1'); // 게시글 삭제

 

이렇게 게시글을 다른 테이블( 삭제 게시글을 모아둔 테이블 )로 이동시켜 줍니다.

 

그리고 일정 기간이 지나거나 회원이 탈퇴를 했을 때 게시물을 폐기 시킵니다.

 

더 나은 방법이 있으면 업데이트 하겠습니다.

 

 

=========================================

 

이전글::

저는 게시글등을 삭제할때 DELETE 쿼리를 이용하지 않았습니다.

대신 isDelete 라는 컬럼을 생성하고 기본값을 N으로 주었습니다.

그후 게시글 삭제시 UPDATE 쿼리로 isDelete를 Y로 바꿔주었습니다.

게시글 목록은 isDelete가 N인 게시물만 노출되게 해주었습니다.

 

게시글 데이터를 바로 삭제하지 않는것은 여러가지 이유가 있습니다.

하지만 유저가 삭제한 데이터를 무한정 가지고 있을 수는 없습니다.

그래서 게시글 삭제 이후 3개월(임의로 지정한 기간)이 되었을때 삭제하고 싶었습니다.

게시글이 삭제된 시간을 기록하는 칼럼을 만들어서 관리하면 될것 같습니다.

 

이 글은 게시판을 만들면서 생각한 내용의 일부를 정리했습니다.

 

계속 업데이트할 예정입니다.

 

+ Recent posts