2013-02-28 75 views
0

好的 - 對於我的項目,我被要求爲一個過程確定一些驗證技術,我們必須轉換某些數據。讓我給你一個背景。驗證和創建唯一的ID

我們從客戶端接收數據 - 我們加載該文件,只有在必要的加工領域的拉動。在這個階段進行一些檢查。從這裏我們對基本上完成所有繁重工作的數據運行腳本。 (刪除重複項,檢查日期等)。然後它通過黑匣子系統運行並將結果吐出。

我們一直在通過客戶端,我們是在我們的計數非常關閉特定組的通知。大約4美元美元這一個。

我們有一個程序,以確定一個唯一的成員,通過生成pol_ID,一個Suf_ID並與他們相關的組名,他們被認爲是在我們的系統中獨一無二的,在我們的處理系統。

我們需要一個過程來處理記錄這些獨特的成員。 一個獨特的成員可以在給定的時間段內擁有與他們的姓名相關的一對多索賠。

當我們收到要求信息時,它通常通過使用payor_field處理+ claimno +生成的序列號(有時該序號是claimno的最後兩位數字)...

例有三個索賠進入系統,經過負載處理後,我們看到客戶端重複了索賠號 ,因爲我們使用最後兩位數字,因此不再使它們唯一併丟棄三條記錄中的兩條。只保留第一個。

WKS-01100 75.02 - stays 
WKS-01100 6000.56 - drops 
WKS-01100 560.23 - drops 

我的問題進場,因爲我們通常在claimno做出假設,如果我們分析過的最後兩位數字,它是獨一無二的,在測試中這種情況下,我們試圖創造另一個明確的遞增序列號專欄來考慮這個獨特的。然後使我們的結果翻倍。

現在我的問題如下:

有另一種方式來提出這些要求獨特之處?自動遞增不是一個選項。考慮客戶可以發送重複的聲明,這是我們的問題所在,他們可以回收他們的聲明。

由於它是基於月份的,也許可能會有某種月底id ..結束..?

將在序列號作品的任何二進制表示?這是一個INT數據類型..(還應該指出,我們處理的歷史數據可以追溯到24個月,並且每個月我們都會得到下一個連續的月份數據,並且我們會在集合中的第一個月下降)

我們沒有限制我們做什麼來改變這種說法,所以我願意提供建議......儘量保持簡短,但讓我知道是否需要添加更多信息:)謝謝。

回答

0

你有保存每項索賠時間戳?一個可能的解決方案是附加時間戳以使索賠具有唯一性。

WKS-01100-1330464175

WKS-01100-1327514036

WKS-01100-1341867984

+0

將如何產生的時間戳? – Hituptony 2013-02-28 16:02:25

+1

MySQL具有'UNIX_TIMESTAMP'功能。它也有'UUID'功能,返回通用唯一的ID。 – 2013-02-28 16:13:18

+1

N.B.有一個很好的建議使用UUID。請參閱文檔 - http://php.net/manual/en/function.uniqid.php – m79lkm 2013-02-28 18:29:17