2024-01-08[TIL]

jenna·2024년 1월 8일
0

TIL/WIL

목록 보기
53/59

softDelete & hardDelete

Soft Delete와 Hard Delete(Cascade Delete)의 차이점

Soft Delete: 실제로 데이터를 DB에서 삭제하는 것이 아니라, 삭제된 것처럼 보이게 하는 방법

  • 일반적으로 'isDeleted' 나 'deletedAt' 같은 필드를 추가하여, 이 필드를 통해 데이터가 삭제된 것처럼 처리, 실제 데이터는 그대로 남아 있기 때문에, 필요한 경우 복구가 가능
  • 사용자가 실수로 데이터를 삭제한 경우나, 삭제된 데이터의 히스토리를 유지해야 하는 경우, 데이터를 "삭제"하고 싶을 때 사용
  • 데이터의 무결성을 유지

Hard Delete(Cascade Delete): 해당 데이터와 관련된 모든 참조를 함께 삭제해 데이터를 DB에서 완전히 삭제하는 방법

  • cascade를 사용
  • 데이터를 완전히 제거해야 하거나, 데이터 저장 공간을 확보해야 하는 경우, 데이터가 다른 테이블과 복잡하게 연결되어 있고, 이 데이터를 삭제하면 연결된 모든 데이터를 함께 삭제해야 하는 경우에 사용

두 방식을 동시에 사용하는 것도 가능하다. 예를 들어, 일반적인 삭제 작업에는 Soft Delete를 사용하고, 특정 조건을 만족하는 데이터는 Hard Delete를 사용하는 방식있다.

profile
https://github.com/jennaaaaaaaaa

0개의 댓글