시나리오 : "송장"에는 "사용자"클래스에 대한 참조가 있습니다. 사용자 개체는 사용자 또는 관리자를 통해 삭제되지만 송장 개체에는 여전히 수신자 (사용자)가 필요합니다.개체를 삭제 된 것으로 표시하지 않으려면 어떻게해야합니까?
사용자 개체를 물리적으로 삭제하는 대신 삭제 된 것으로 표시 할 수 있습니다. 하지만 삭제 된 것으로 표시된 객체를 사용하는 것은 좋지 않은 디자인이라고 생각합니다. 제 생각에는 객체는 삭제 후 법적인 요구 사항에 대해서만 보관되어야하며 정기적으로 사용되지 않아야합니다. 삭제, 선택, 데이터베이스 백업 ... 내가 객체를 사용하지 어떻게
를 케스 케이 딩 삭제 표시된 같이
그들이 물리적으로 몇 가지 쉽게 제거하려면? 데이터베이스에서 사용되지 않는 객체를 물리적으로 제거하려면 어떤 디자인이 필요합니까? 모범 사례가 있습니까?컨텍스트 : Java EE 및 관계형 데이터베이스를 기반으로하는 OOP (DDD) 응용 프로그램입니다.
좋아, 데이터베이스 수준에서 나는 당신과 동의합니다. 그러나 문제는 응용 프로그램/아키텍처 수준에 더 있습니다. 한편으로는 사용자가 삭제되어야하고, 한편으로는 사용자 데이터가 여전히 송장에 필요합니다. 참조 무결성을 사용하면 사용자를 삭제할 수 없습니다. "삭제하기 전에 필수 데이터 복사"라는 형식이 필요합니다. – deamon
여기에 디자인 문제가 있습니다. 송장을 보관해야하는 경우 사용자를 유지해야합니다. 정말 간단합니다. 사용자를 비활성 또는 이와 비슷한 것으로 표시하는 것이 좋습니다. 상위 행은 삭제할 수 없으며 하위 행은 고아가 될 수 없습니다. 고객 (사용자)이 누구인지 알 수없는 경우 인보이스를 보관하는 것은 무엇입니까? –