2008-10-01 63 views
2

工作流程是這樣的:我如何找到類似的地址記錄?

  1. 我接收優惠券的掃描數據(名字,姓氏,郵政編碼,城市+其它信息)就可以了。
  2. 在創建新客戶之前,如果客戶可能已經存在,我必須搜索數據庫。

現在我的問題:當沒有可用的唯一ID時,找到現有客戶的最佳方式是什麼?

PS:我確實有數據庫中的一個唯一的ID,只是沒有在我們收到的優惠券;)

回答

3

我們使用Levenshtein distance算法來檢查用戶是否有重複。但是,我們有相當嚴格的規則來輸入數據本身,所以我們必須檢查是否存在歪曲,情況差異等。

-3

您可以查詢與給定數據匹配的所有客戶的數據庫,例如

SELECT ID FROM tbl_customers WHERE 
    first_name LIKE 'JOHN' 
    AND last_name LIKE 'Doe' 
    AND zip_code=12345 
    AND city LIKE 'Ducktown' 

如果返回的行數爲0,則在數據庫中創建一個新條目。如果它是1,查詢會給你這個ID。如果它大於1,你可能會有幾個同名的客戶住在同一地區,需要找到一種方法來處理這種情況。但是,這將在這裏證明了一個新問題;-)


P.S:如果你沒有唯一的ID的所有,重新設計你的數據庫。

0

如果您有SQL Server 2005,則可以通過SSIS將數據帶入,並使用模糊查找來檢查相同性。

2

如果你真的想以正確的方式,簡單的方式,完整的方式購買Netrics。

http://www.netrics.com/

我們買了它,幷包裹着它的應用程序,讓我們的員工配合他們想要的任何東西。可以配置每列的置信區間,建立可以將Robert映射到Bob,並將John映射到Jack的文字區。這是令人驚歎的,並被該國一些較大的機構用於清理各種名單。