-
[DB] soft delete 논리삭제TIL 2024. 4. 5. 22:32
프로젝트를 진행하던 중, 실제 서비스에서 쓰이는 바와 같이 soft delete를 사용하자는 의견이 나왔다.
db에 저장된 내용을 물리적으로 삭제(hard delete)하는 것이아니라, 논리적으로만 삭제함으로써,
데이터 삭제요청이 들어오더라도, 그 요청을 서비스 내에서 수행함과 동시에, 실제 DB에는 과거에 생겼던 데이터 목록들
도 볼 수 있게된다.
그 결과 문제가 생겼을때, 데이터 복원이 가능하고, 데이터 변경이력, 데이터 삭제시간 등을 확인할 수 있는 장점이 있다.
구현이 어렵지도 않기때문에 바로 기획단계에서 바로 프로젝트에 도입했다.
DB에 테이블을 만들때 삭제여부를 확인할 수 있는 데이터속성 1개만 추가하면된다 (is_deleted)
데이터 속성 1개 만으로 데이터의 삭제여부, 삭제시간을 모두 알고 싶었기 때문에 deleted_at을 이용하였다
데이터 삭제정보표시)
- deleted_at : null : 삭제되지않음
- deleted_at : timestamp : 삭제됨, 삭제 시간
'TIL' 카테고리의 다른 글
Express static (0) 2024.05.25 [DB] 트랜잭션 동시에 실행해서 성능올리기 ( confilct serializable한 nonserial schedule을 허용하기 ) (0) 2024.04.08 N+1 문제 해결하기 (0) 2024.04.05 3계층구조) (0) 2024.04.05 [DB] DB에서 특정한 형식으로 출력하기(시간, 문자열) (TO_CHAR()이용하기), 타임존 설정하기 (0) 2024.04.05