회사 면접을 다니면서 받은 질문이 있었다. 

개인 프로젝트에 테이블 간에 외래 키가 맺어져 있는 데이터를 삭제할 때 어떻게 진행을 하는지를

나는 외래키로 연결하고 삭제하게 되면 ON DELETE CASCADE로 하위 데이터도 삭제되게 진행했다.

면접관이 얘기하길 요즘은 직접적으로 물리삭제하는 경우는 드물고 대부분 논리 삭제를 진행을 하는데

이유가 있냐고 물었다. 

거기서 논리삭제에 대한 키워드는 처음 들은 거 같다.

키워드를 검색해보니 어느정도 인지는 하고 있던 내용이었다.

삭제요청에 바로 삭제를 하지 않고 

칼럼을 하나 두고 Y/N 또는 1/0으로 변경하는 것 SELECT은 조건에 맞춰서 보일 것만 불러오게 하면 된다.

물리 삭제직접 데이터를 삭제하자는 사고방식. 테이블에서 데이터를 삭제. 
논리삭제 : UPDATE명령을 이용해 '삭제 플래그'의 값을 유효하게 경신하는 삭제 방식. 
데이터가 삭제된 것처럼 보이게 하는 삭제 방법. 실제 테이블 안에 데이터는 남아있음

논리삭제의 장점 : 데이터를 실제 삭제하지 않기 때문에 삭제되기 전의 상태로 쉽게 되돌릴 수 있음.
논리삭제의 단점 : 삭제해도 데이터 베이스의 저장공간이 늘어나지 않음. 

다시 보니까 상황에 따라 맞춰서 진행해야 할 거 같다. 삭제요청을 한다고 해도 나중에 필요할 수 있는 데이터가 있을 수 있으니까