2012-03-16 54 views
0

我有每個月結束的用戶詳細信息文件。比較兩個文件中記錄的數據變化

文件將有類似的ID,F名稱,L的姓名,地址,電話,公交電話,興趣愛好,書列

id是唯一的密鑰識別個人身份的。

我需要維護一個來自這個文件的信息的數據庫。

在1月份說這個文件有100個用戶。 2月份該文件有110個用戶。意味着10個新用戶。

所以我將排序這兩個文件的id,現在將新的10個用戶,並將添加它們。

問題是,我也想檢查對現有ID的更改。

因此,對於id 3在jan中的地址是xyz,在feb文件中它變成了pqr,我想知道它並相應地更新數據庫。

因此 - 比較兩個文件(固定格式)中的記錄以便了解列中數據更改的最簡單以及最有效的方法?

我可以想到的一種方法是對兩個文件中的每條記錄都進行校驗和,並將它們進行比較以瞭解這些更改。但是想知道這是正確的方式還是有更好的方法?

+0

http://stackoverflow.com/q/9766720/887235 通過上述問題得到答案。 – Nik 2012-03-31 03:18:45

回答

0

那麼,你有FileUtils.contentEquals方法(http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html)。如果沒有基於時間的頭文件等,並且可以直接比較內容,這種方法可以很好地工作。

+0

你有這樣一個例子的指針嗎? contentEquals會告訴我在我的情況下是否存在差異總是在那裏。我想知道的是不同的是 - 不管是添加新行還是刪除一些行或者修改了行! – Nik 2012-03-19 07:37:37

+0

據我所知,FileUtils只是做比較。所以它可能不符合你的目的。 – 2012-03-19 07:46:48

+0

我發佈了一個新問題,詳細解釋了我的問題。如果你感興趣! – Nik 2012-03-19 08:01:15

0

簡單而簡單的解決方案是添加最後一個更新列並在其中放置日期/時間戳。這基本上與校驗和一樣,但是會是人類可讀的。對於數據庫的規模來說,兩種方法都是有效的。

+0

我確實可以控制更改文件格式。所以你建議的解決方案是不可行的。 :( – Nik 2012-03-16 04:32:41

+0

計算哈希/校驗和是比較它們以查看記錄是否不同的完美可接受的方式,但是,您將無法很好地解決衝突編輯,但這可能不成問題。 – 2012-03-17 04:29:09