2011-01-20 6 views
-2

시나리오 :데이터베이스 업데이트

나는 Database1 (PostgreSQL을)를 가지고있다. 이를 위해 i) 레코드가 삭제되면 상태 col. 해당 레코드는 비활성으로 변경됩니다. ii) 레코드가 업데이트되면 현재 레코드가 INACTIVE로 렌더링되고 새 레코드가 삽입됩니다. iii) 삽입은 평상시처럼 일어납니다. 데이터베이스의 모든 테이블에 대해 각 레코드에 대해 시간 소인 col가 있습니다.

나는 Database1과 동기화되어 다른 DATABASE2 (SQLite는)이 있고, Database1는 정기적으로 변경됩니다 Database1

의 동일한 속성을 다음과 나는 모든 테이블에 대한 CSV 파일을 얻을 것입니다. CSV에는 새로운 삽입 및 업데이트를 비롯한 모든 데이터가 포함됩니다.

요구 사항 :

내가 새로운 CSV와 일치 Database1의 데이터를 확인해야합니다. i) CSV에 없지만 Database1 (DELETED RECORDS)에있는 레코드의 경우 -이 레코드는 상태를 비활성으로 설정해야합니다. ii) CSV에는 있지만 Database1 (INSERTED RECORDS)에는없는 레코드의 경우이 레코드를 삽입해야합니다. iii) CSV에서 업데이트 된 레코드의 경우 상태를 비활성으로 설정하고 새 레코드를 삽입해야합니다.

이러한 논리적 인 구현을 도와주세요 !!!

감사

Jayakrishnan

답변

1

난 당신이 기성품 솔루션을 찾고 있지, 당신이 원하는 것을 달성하기 위해 소프트웨어를 구축 찾고 가정합니다.

어떤 환경에서 개발할 수 있습니까? 기음? PHP? 자바? 기음#?

CSV/SQLite/PostgreSQL에서 모든 읽기/쓰기가 가능한 많은 환경에서 다양한 옵션이 제공됩니다.

0

ON DELETE 트리거를 사용하여 기존 삭제 동작을 무시할 수 있습니다.

그러나 이것은 위험한 것으로 나타납니다. 누군가가 이것에 의지 할 것이고 트리거가 없다면 실제 삭제가 발생할 것입니다 ... 이것을 뷰 또는 무언가 뒤에 캡슐화하고 트리거를 넣는 것이 좋습니다. 또는 저장 프로 시저 또는 뭔가를 통해 이동하십시오.