Softdelete in database

Tags:

Building Scalable Databases: Perspectives on the War on Soft Deletes

A가 a를 가지고 있었다는 사실을 알고 있었는데, 더이상 A가 a를 갖고 있지 않을 경우 (A,a)를 DB에서 지워버리는 경우를 hard delete, 데이터가 삭제되었다고 (A,a,isDeleted=True)표시하는 경우를 soft delete로 구분하고 그 장단점을 비교한 글. 출발점은 삭제했다고 그 데이터가 있었다는 사실까지 없어지면 불편하다는 것이고, 그래서 soft delete로 isDeleted=True로 해놓겠다는 것인데 결과적으로 성능의 저하가 발생한다.

글에서 추천하는 방법은 isDeleted 컬럼을 날려버리고, 모델을 새로 생각해보고, 결과적으로는 어떤 사람 A가 a를 소유하고 있다는 사실을 별도의 relation으로 가져야한다는 것.