以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]程版新版《网络环境下复杂的不重复编号》的读后疑问.  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29341)

--  作者:pc005637
--  发布时间:2013/3/4 23:47:00
--  [讨论]程版新版《网络环境下复杂的不重复编号》的读后疑问.

拜读了程版的新版《网络环境下复杂的不重复编号》,回收编号想法思路很好,详细读了,并对比说明文档的网络编号例子.考虑到这样一个问题.如果在网络条件不佳的情况下,多用户并发申请编号.是肯定会出现重复的编号.被免的方法,就是说明文档中的精华.用 DO ...LOOP语句判断是否更新了SQL数据库的编号表来防止重复取得编号.

 

本人才疏,想请程版再想想个解决的办法.

 

当然在局域网,少用户.程版的方法是完美的.


--  作者:程兴刚
--  发布时间:2013/3/5 0:01:00
--  
如果网络不通,foxtable都要死翘翘,我还考虑它干啥?
--  作者:程兴刚
--  发布时间:2013/3/5 0:15:00
--  

再说,采用服务器数据库,就必须联网,不联网就禁止操作!

 

比如,您在银行存款5万元,断网允许操作的话,您在A柜台取款5万,到B柜台还可以取款5万,因为未联网操作的电脑数据无法及时提交。

 

再比如,您的A门店和B门店……甚至某一区域的更多门店都在一个总库出货,本来某商品库存数量只有一件,如果服务器后台数据库连不上还允许销售操作,会出现N-1个客户下单后不能在预订时间内提货,同时会导致您的库存余量为负数,小型商品还好说,一般可以备货,对于大型商品来说,备货数量就相对较少了!

 

因此,我只考虑程序在断网时,如果是操作者的客户端不能登录网络,最多考虑可以通过短信猫来弥补,如果是后台服务器数据库无法登录,我只考虑暂时禁止客户端操作,这个是必须的,否则,仓库太大,比如大型物流,不通过电脑,很难查到某些商品实际库存,商品多了,甚至连库位号都找不到。


--  作者:pc005637
--  发布时间:2013/3/5 0:18:00
--  没办法,中国的互联网的确够烂的.

想像一下.点击了新增按键,要十几秒才能出现新增一行数据.

 

多人申请编号的时候,的确会有重复的编号生成.

 

悲剧了.


--  作者:程兴刚
--  发布时间:2013/3/5 0:20:00
--  
我这里远程数据库,中国电信无线网卡,没有像您说的时间这么长,新增一行,添加完编号,一秒也用不了!
--  作者:pc005637
--  发布时间:2013/3/5 0:21:00
--  就像抢火车piao一样.抢了半天,还是没piao.
虽然在"排队了"
--  作者:程兴刚
--  发布时间:2013/3/5 0:23:00
--  
记住,只要不是两个人同时按下鼠标,或者同时在后台摘取编号数据,编号就不会重复,那样的几率太少,除非没事不停地增加行,用户就不干别的工作了?(其他录入操作、打印小票什么的?
--  作者:程兴刚
--  发布时间:2013/3/5 0:26:00
--  
我的设计是抢完票,马上给下一位用户附上编号数据,等他来拿,代码中有两行是专门用来“抢票”的,抢到手,先标记“占有权”,同时给下一位预置新的编号(如果有多个回收回来的编号,则不需给下一位新编码,除非抢占的是唯一回收或者预置的编号)
--  作者:jnletao
--  发布时间:2014/12/18 10:10:00
--  
终于找到此贴拜读

原来设计一直用程版的方法,由于网速及并发问题,重号偶有发生,想不通,今天终于找到原因了。

谢谢老师们的奉献图片点击可在新窗口打开查看