一个令我无奈的问题(请高手帮下忙)

时间:2021-12-25 19:09:18
本人在C/S下作了个小项目
想点击一个按钮后生成一个文档,文档都是有编号的,逐次+1
001,002,003。。。。。。。
我给文档编号的方法是点击提交按钮后从View中数文档总数,然后+1,
给当前文档编号赋值。(不知这种方法对不对)
但问题是当我用两台机器同时点提交按钮时,有时会出现同样的编号,
不知道Notes的内部是怎样控制这种同步问题的,能解决吗?
高手帮下忙。谢谢

11 个解决方案

#1


如果你是一台服务器,那么文档编号在保存的时候才计算获得,不要使用“创建时计算”域。

如果你是多台服务器的群集,那么基本没有办法完全做到不重复,特别是你的并发量大的时候,你需要加入其他能表示唯一的信息,比如多加几个随机数等。

#2


恩,保存的时候去获得,这个时候可以尽量减少同样的编号,一般不会出现同号的现象.

#3


我是一台服务器,可是我的文档里面有多处需要保存,所以计算编号的代码只能放在
一个按钮中,而不能放在保存事件中阿,那还有什么好办法能解决吗?

#4


可以将最大编号记录在一条文档中,然后点编号的时候,只需要去取这个最大编号的记录,每次加一即可,这样也可以尽量的减少重号的现象.

#5


保存的时候做,也许是个最简单的办法。创建的时候计算编号也可以,你可以在保存的时候给这个创建时做的文档编号做个异步的校验,如果存在相同的编号,提示用户改怎么做,比如继续保存,还是重新计算个编号。

#6


先给一个默认的编号,然后保存或者提交的时候再根据情况修改这个编号,,不过你按照文档的数目计算编号不太好,要是有的文档保存之后被删除了怎么办?! 应该是按照最后保存的文档上的编号进行+1 吧..

#7



能不能再请教各位一下,如果像lyn0605说的那样按照最后保存的文档编号+1的方法,
那么我怎么才能得到最后保存的文档呢?

#8


把文档编号放在一个独立的文档中,等保存才去取这个文档把文档编号+1。

#9


lyn0605所说的问题,可以在注销文档或者删除文档的时候,将该文档的号存放在放置最大号的文档中,该存放的域设置为漏号,则在新建文档保存之后先去读是否有漏号,如果有漏号的话,先将漏号中第一个号置于当前文档,如果没有则采用最大编号+1的方式,当然在读该配置文档的时候需要锁定.

#10


这是涉及一个自动生成编号的问题,并且要自动累加.最好的办法是单独建一个文档放编号,这样就不会出现文档被删时数目不正确的问题了.然后在这个最大值上+1.求最后保存的文档可以用doc.lastmodify.个人觉得还是在保存时,重新计算编号最好.这样机率较小,要想做到完全没有重复,那是不可能的,数据存储更新还是要有时间的.

#11


  
  
  不出现重复编号的办法也很简单。
   在保存时先取下一最新编号,再+1保存进去。跳号比较麻烦点

 

#1


如果你是一台服务器,那么文档编号在保存的时候才计算获得,不要使用“创建时计算”域。

如果你是多台服务器的群集,那么基本没有办法完全做到不重复,特别是你的并发量大的时候,你需要加入其他能表示唯一的信息,比如多加几个随机数等。

#2


恩,保存的时候去获得,这个时候可以尽量减少同样的编号,一般不会出现同号的现象.

#3


我是一台服务器,可是我的文档里面有多处需要保存,所以计算编号的代码只能放在
一个按钮中,而不能放在保存事件中阿,那还有什么好办法能解决吗?

#4


可以将最大编号记录在一条文档中,然后点编号的时候,只需要去取这个最大编号的记录,每次加一即可,这样也可以尽量的减少重号的现象.

#5


保存的时候做,也许是个最简单的办法。创建的时候计算编号也可以,你可以在保存的时候给这个创建时做的文档编号做个异步的校验,如果存在相同的编号,提示用户改怎么做,比如继续保存,还是重新计算个编号。

#6


先给一个默认的编号,然后保存或者提交的时候再根据情况修改这个编号,,不过你按照文档的数目计算编号不太好,要是有的文档保存之后被删除了怎么办?! 应该是按照最后保存的文档上的编号进行+1 吧..

#7



能不能再请教各位一下,如果像lyn0605说的那样按照最后保存的文档编号+1的方法,
那么我怎么才能得到最后保存的文档呢?

#8


把文档编号放在一个独立的文档中,等保存才去取这个文档把文档编号+1。

#9


lyn0605所说的问题,可以在注销文档或者删除文档的时候,将该文档的号存放在放置最大号的文档中,该存放的域设置为漏号,则在新建文档保存之后先去读是否有漏号,如果有漏号的话,先将漏号中第一个号置于当前文档,如果没有则采用最大编号+1的方式,当然在读该配置文档的时候需要锁定.

#10


这是涉及一个自动生成编号的问题,并且要自动累加.最好的办法是单独建一个文档放编号,这样就不会出现文档被删时数目不正确的问题了.然后在这个最大值上+1.求最后保存的文档可以用doc.lastmodify.个人觉得还是在保存时,重新计算编号最好.这样机率较小,要想做到完全没有重复,那是不可能的,数据存储更新还是要有时间的.

#11


  
  
  不出现重复编号的办法也很简单。
   在保存时先取下一最新编号,再+1保存进去。跳号比较麻烦点