以文本方式查看主题 - 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 -- 终于找到此贴拜读 原来设计一直用程版的方法,由于网速及并发问题,重号偶有发生,想不通,今天终于找到原因了。 谢谢老师们的奉献
|