나는 회계 부서에서 사용할 웹 사이트를 만들고 있습니다. 다른 프로젝트별로 예산 지출을 추적합니다.데이터베이스의 변경 사항을 어떻게 추적합니까?
데이터베이스에 SQL Server 2008 R2를 사용하고 웹 사이트에 ASP.net C# MVC 3을 사용하고 있습니다.
내 상사가 수행해야하는 것은 사용자가 프로젝트를 업데이트하거나 만들 때마다 변경 사항을 Mapping_log
이라는 새 테이블에 기록해야한다는 것입니다. 저장되거나 생성되는 전체 Mapping
행을 기록해야하며 사용자와 날짜 스탬프도 추가로 기록해야합니다. 메모 입력란은 필수 항목이며 메모는 Mapping_log
에 저장해야합니다.
이제 PA를 편집 할 때 Notes 필드는 항상 비어 있고 그 아래에는 이전 노트의 날짜별로 정리 된 목록이 있어야합니다. 어쩌면 Nlog와 Log4net을 사용해 보았지만 광산과 같은 상황에 적합한 튜토리얼을 찾을 수 없었습니다. 이러한 모듈은 주로 오류 로깅에 사용되는 것으로 보이지만 중요한 것은 정확히 내가 지금하려고하는 것이 아닙니다.
나는 어떤 방향을 원한다. 누군가 사이트의 사용자가 데이터를 변경 한 과정을 어떻게 추적 할 수 있는지 배우는 데 사용할 수있는 조언이나 자습서가있다.
도움/조언을 주셔서 감사합니다.
데이터베이스 트리거에 가장 적합합니다. – Josh
데이터베이스 트리거는 Josh가 말한 것처럼 작동 할 수 있습니다. 이것은 꽤 똑바로 앞으로의 요구 사항처럼 나에게 소리. 나는 바퀴를 재발 명할 것을지지하지 않지만이 기능에 대한 제 3 자 도구를 구현하려고 시도하는 것이 잔인한 문제 일 수 있다고 생각합니다. 직접 로깅 기능을 만들 수 없습니까? –
다른 테이블을 사용해야합니까? 동일한 테이블에서 변경 사항을 로깅하는 아주 좋은 솔루션이 있습니다. isDeleted, datestamp 및 username 열을 추가 할 수 있습니다. 행을 만들 때 단순히 추가하지만, 업데이트 할 때 현재 행을 삭제 된 것으로 표시하고 새 행을 추가합니다. 이렇게하면 변화의 역사가 있습니다. – shizik