2012-03-16 5 views
0

매월 끝나는 사용자 세부 정보 파일이 있습니다.데이터 변경을 위해 두 파일의 레코드를 비교합니다.

파일

ID가 개인을 식별 할 수있는 고유 키입니다 아이디, F 이름, 리터 이름, 주소, 전화 번호, 버스 폰, 취미, 책과 같은 열이있을 것이다.

이 파일의 정보가있는 데이터베이스를 유지 관리해야합니다.

1 월에 파일에 100 명의 사용자가 있었다고 말하면됩니다. 2 월에 파일에는 110 명의 사용자가있었습니다. 10 명의 신규 사용자를 의미합니다.

그래서 ID에 모두 파일을 정렬하고 이제 새로운 10 사용자와 그들을 추가 할 것입니다 것입니다.

문제는 나는 또한뿐만 아니라 기존의 IDS에 대한 변경 사항을 확인하고자한다.

그래서 1 월 ID 3의 주소는 XYZ이고 2 월 나는 그것을 알고 그에 따라 데이터베이스를 업데이트하려면, 그것은 PQR 된 파일.

그래서 - 가장 쉬운뿐만 아니라 열에 데이터 변경을 알고있는 두 개의 파일 (고정 형식)의 기록을 비교하는 효율적인 방법은? 나는이 두 파일의 각 레코드에 대한 체크섬을 갖고, 변화의 알을 비교한다 생각할 수

한 가지 방법. 그러나 이것이 올바른 방법인지 또는 더 나은 접근 방법이 있는지 알고 싶습니까?

+0

http://stackoverflow.com/q/9766720/887235 위의 질문을 통해 있어 대답. – Nik

답변

0

음, FileUtils.contentEquals 메소드 (http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html)가 있습니다. 이 시간 기반 헤더 등없고 내용이 직접

+0

예제를 가리키는 포인터가 있습니까? contentEquals는 차이점이 있는지 여부를 알려주고, 내 경우에는 항상 거기에있게됩니다. 내가 알고 싶은 것은 차이점은 무엇입니까? - 새로운 행이 추가되는지 또는 일부 행이 삭제되었는지 또는 수정 된 행이 있는지! – Nik

+0

필자가 아는 한 FileUtils는 비교를 수행합니다. 그래서 그것은 당신의 목적을 달성하지 못할 수도 있습니다. –

+0

내 문제를 자세히 설명하는 새로운 질문을 올렸습니다. 관심이 있다면! – Nik

0

쉽게 비교 할 수 있으며 간단한 솔루션은 마지막 업데이트 열을 추가하고이 날짜/시간 스탬프를 넣어하는 것입니다 곳의 경우 잘 작동합니다. 이것은 본질적으로 체크섬과 같지만 사람이 읽을 수 있습니다. 두 방법 모두 데이터베이스가 얼마나 작은 지 충분히 효율적입니다.

+0

나는 파일 형식을 변경하는 제어 할. 그래서 당신이 제안하는 해결책은 실현 가능하지 않습니다. : – Nik

+0

해쉬/체크섬을 계산하는 것은 레코드를 다르게 비교할 수있는 완벽한 비교 방법이 될 수 있지만 충돌하는 편집 내용을 잘 해석 할 수는 없지만 문제가되지는 않습니다. –

관련 문제