물리삭제(hard delete)와 논리삭제(soft delete)

Taeha Kim·2020년 10월 3일
7

Database

목록 보기
5/8
post-thumbnail

이글은 MySQL의 DELETE와 UPDATE 명령어의 사용 방법을 아신 다음에 보는것을 추천합니다.

물리삭제(hard delete)와 논리삭제(soft delete)

데이터베이스에서 데이터를 삭제하는 방법에는 물리삭제논리삭제가 있으며 그중 하나를 선택하여 사용합니다.

물리삭제는 SQL의 DELETE 명령어를 사용하여 직접 데이터를 삭제하는 방법입니다.

삭제 대상인 데이터가 필요없을때 (추후에 조회할 필요가 없을때) 사용합니다.

논리삭제는 SQL의 UPDATE 명령어를 사용하여 삭제 여부를 알수 있는 컬럼에 데이터가 삭제되었다는 값을 넣어서 표현합니다.

삭제를 해도 삭제하기전의 데이터를 보관해야 할 경우에 논리삭제를 사용합니다.

물리삭제와 논리삭제의 예시

배송지 정보가 다음과 같이 3개가 있다고 하면

# id회원 id수령인 이름수령인 연락처기본 배송지 여부우편번호주소상세주소삭제여부
11김태하010-1234-5678101234서울특별시 동작구 어딘가101호0
21김태하010-1234-5678002345서울특별시 광진구 어딘가201호0
31김태하010-1234-5678003456경기도 어딘가301호0

논리 삭제의 경우

2번행을 논리 삭제해보겠습니다.
SQL의 UPDATE 명령어를 이용하여 삭제여부 컬럼의 값을 True로 바꾸어 줍니다.
실제 서비스에서 배송지 정보를 클라이언트에게 보낼때는 삭제여부값이 0인 행만 보내주면 됩니다.

논리삭제의 경우 실제 데이터는 데이터베이스에 남아있고 사용자(클라이언트)에게 배송지 정보가 삭제된거 처럼 보여주는 방법입니다.

# id회원 id수령인 이름수령인 연락처기본 배송지 여부우편번호주소상세주소삭제여부
11김태하010-1234-5678101234서울특별시 동작구 어딘가101호0
21김태하010-1234-5678002345서울특별시 광진구 어딘가201호1
31김태하010-1234-5678003456경기도 어딘가301호0

물리 삭제의 경우

3번 행을 물리 삭제해보겠습니다.
SQL의 DELETE 명령어를 이용하여 데이터베이스의 3번째 행을 삭제합니다.

논리 삭제와는 다르게 물리 삭제는 실제로 데이터베이스에서 행 자체를 삭제합니다.

# id회원 id수령인 이름수령인 연락처기본 배송지 여부우편번호주소상세주소삭제여부
11김태하010-1234-5678101234서울특별시 동작구 어딘가101호0
21김태하010-1234-5678002345서울특별시 광진구 어딘가201호1
profile
함께 성장하는 개발자가 되고 싶습니다.

0개의 댓글