我的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