현재 관계형 데이터베이스에서 수정 된 튜플을 추적해야하는 프로젝트에서 작업 중입니다. 여기에는 업데이트 된 튜플뿐만 아니라 삽입 및 삭제 된 튜플이 포함되어야합니다. 내 질문은 이것을 성취하는 가장 좋은 방법이 무엇일까? 나는 내 생각에 대해 여러 가지 아이디어를 가지고 있지만 어쩌면 내가 생각하지 못했던 더 쉽고/더 좋은 방법이있을 수도 있고, 정확하게 이것을 수행하는 프로젝트가 이미 존재할 수도있다.데이터베이스에서 수정 된 튜플을 추적하는 가장 좋은 방법은 무엇입니까?
프로젝트의 최종 목표는 다른 공급 업체의 관계형 데이터베이스에서 작동하지만 첫 번째 구현에서는 MySQL 데이터베이스를 사용한다는 것입니다. 다른 데이터베이스 시스템은 나중에 지원 될 수 있습니다. 그러나 MySQL에서 작동하는 솔루션을 다른 데이터베이스에 쉽게 적용 할 수 있다면 좋을 것입니다.
첫 번째 아이디어는 로그 파일을 구문 분석하는 것이 었습니다. 그러나 이러한 로그 파일에 실제 수정 된 튜플이 포함되어 있는지 여부는 확실하지 않으며 이러한 로그 파일을 항상 사용할 수있는 것은 아니라고 생각할 수도 있습니다 (예 : 공유 호스팅).
두 번째 아이디어는 응용 프로그램 수준에서 쿼리를 가로채는 것입니다. INSERT, DELETE 또는 UPDATE 쿼리가 수행되면 이러한 쿼리를 구문 분석 할 수 있으며 영향을받는 튜플을 미리 결정할 수 있습니다. INSERT 연산의 경우 이것은 단순히 삽입 된 튜플이고, DELETE 또는 UPDATE 연산의 경우 튜플은 새로운 SELECT 문에 WHERE 절을 적용하여 식별 할 수 있습니다.
마지막 발언에서이 성능이 개발 단계의 중요한 요소는 아니라고 덧붙였습니다.
자세한 내용이 필요하면 알려 주시면됩니다.
변경 사항을 관계형 데이터에 기록하는 방법에 대한 제안 사항이 있습니까? 그렇다면, 이것은 여러 번 중복 된 것입니다 - 그래서 "감사 로깅"을 검색해보십시오. 예를 들어 http://stackoverflow.com/questions/2015232/database-design-for-audit-logging 및 http://stackoverflow.com/questions/1439173/enterprise-data-auditing을 참조하십시오. –