我的web應用程序(銷售點)處理多個分支機構的銷售。每個銷售都有一個唯一的整數ID。分支1上的某些銷售ID爲n,則分支2上的下一個銷售爲n +1。當webapp離線時處理銷售交易
當分支機構失去互聯網連接時,我將銷售信息保存在瀏覽器內部數據庫中,其中銷售ID是最後一個銷售ID加1。當連接恢復時,我將該信息發送給服務器,然後將其存儲在真實數據庫中。
當兩個或更多分支機構鬆動互聯網連接時會發生噩夢。因爲當他們在離線銷售和互聯網回來時,服務器將獲得兩個具有相同ID的銷售,這是非常可怕的,因爲客戶票據已經打印完畢!
我現在的計劃是將每個銷售ID從分行ID和該分行的實際銷售編號混合在一起。所以分支1銷售ID將是1-1,並且分支2的下一個銷售將是2-1。聽起來不錯,直到布拉克有兩個銷售點,情況並非如此,但它不是很有前途的證據。
您認爲最好的方法是什麼?有沒有更好的方法來做到這一點?
在這種情況下,如果您使用GUID(這很不明智並且通常人們不願意使用它們),您只需要在客戶端使用GUID。一旦客戶端與服務器同步後,服務器就可以分配適當的標識符供將來使用。 –
@我會讓計算機處理GUID,它們比我快得多。如果有疑問,我會選擇一個GUID作爲PK的任何一天。當需要將來自數千個不同來源的10個數據混合在一起時,您會非常高興您沒有使用從1開始的整數。 – ScottS