2010-07-22 46 views
0

例如。 2數據源,您允許干涉的數據庫1,其他不是。 2個數據源包含人員記錄,您需要執行以下功能。如何比較數據庫中的大量數據?

  1. 查找兩個數據源相匹配的人對這些匹配的人
  2. 運行的業務規則(這可能是檢查的人是否已經獲得增加工資等
  3. 馬克孤兒的人,堅持的人到數據庫。

的原因的問題是性能,並確保最佳的解決方案是使用。通過每一個匹配的人可能是緩慢的循環,但在代碼中這樣做是絕對維護。

注意:可能有4萬人在運行業務規則。

+0

在Oracle和SQL Server上,您都可以引用外部數據庫服務器,並使用它的表,就好像它是自己的(有限制) - 也就是說,如果他們爲您提供訪問權限。您可以在數據庫級別和應用程序級別混淆數據,這只是關於常規業務邏輯。如果沒有直接訪問權限,則必須處理所有數據。 如果兩個數據庫不相同(例如,您已將數據從D1更新爲D2),則使用D1的更改日期僅查詢已更改的記錄(如果它們有一個)。 – 2010-07-22 11:27:00

回答

0

我正在處理執行非常類似操作的應用程序。我唯一不能做的就是操縱信息(它只是讀取數據)。我所做的就是將1個數據源中的數據導入到DataSet中,然後,當需要與數據庫進行比較時,我只需從數據庫表中選擇唯一標識符與數據庫中相同的值我的數據集(可以使用SQL中的LIKE作爲替代),如果發現任何內容,它將從數據庫返回值。

因此,讓我說我搜索一個身份證號碼(這應該是每個人都是唯一的)。如果數據庫中有我在搜索的表格中搜索到的ID號碼,那麼我將獲得有關該人員在我的表格上顯示的信息。如果沒有,我可以顯示一條錯誤消息,說沒有找到匹配。

希望這會有所幫助。

0

如果我在SQL Server數據庫中這樣做,我會使用SSIS處理數據並執行所需的更改操作,或者將人員標記爲可能的匹配項目,以供某人在進行更改之前進行確認。我爲什麼要這樣做的一個原因是,在不同的系統中,名稱可能不匹配,使用模糊邏輯進行比較可能比使用普通舊SQL更好,更準確地找到數學運算。例如,同一個人可能是約翰瓊斯在一個系統中,約翰尼瓊斯在另一個系統中。

它也可以幫助系統嘗試匹配存儲每個系統唯一記錄標識符的表,以便在進行更改時仍可以保持匹配狀態。當瑪麗史密斯與約翰尼瓊斯結婚,並在一個系統中改爲瑪麗瓊斯時,她的信息仍然可以在另一個系統中與瑪麗史密斯交往。