다음 상황이 발생했습니다.재귀 삭제를 구현하는 방법은 무엇입니까?
고객은 프로젝트 및 프로젝트에 라이센스가 포함되어 있습니다. 좋습니다 때문에 우리는 아무것도 삭제하지 않지만 우리는 대신 IsDeleted를 사용합니다. 기타 캐스케이드 삭제를 사용했을 수 있습니다. 내가
customerRepository.Delete(customer);
를 호출하지만, 여기에 문제를 시작 있도록
Owkay 나는 저장소 패턴으로 작동합니다. 고객은 true로 설정됩니다. 그러나 그 고객의 모든 프로젝트를 삭제하고 싶습니다. 그리고 삭제 된 각 프로젝트는 모든 라이센스를 삭제해야합니다.
이 경우 적절한 해결책이 있는지 알고 싶습니다. 그래도 공연해야합니다.
실제 문제의 단순한 버전임을 유의하십시오. 고객은 또한 라이센스에 링크 된 사이트도 가지고 있지만 문제를 단순화하고자했습니다.
SQL Server 2008을 데이터베이스로 사용하는 C# 환경에서 작업하고 있습니다.
편집 : 나는
예, 트리거가 위험하다고 생각합니다. 당신은 그들을 추적 할 수 있습니다. – user29964
예. 사람들은 때때로 트리거가 생성되었음을 "잊어 버리는"경우가 있습니다. – RichardOD
개인적으로 필자는 레코드가 설정 될 때마다 삭제되고 적절한 다른 변경이 이루어 지도록 트리거 아이디어를 좋아합니다. 나는 이것이 애플리케이션 코드를 통해 무책임하다고 생각한다. 데이터 무결성 문제가 발생할 위험이 있습니다. 우연히 누군가 삭제 된 경우 모든 하위 레코드를 통해 삭제 취소를 설정할 수도 있습니다. – HLGEM