首页 文章

没有重复的数据库莲花笔记

提问于
浏览
1

今天是个好日子 .

如果我将它用于更新数据,重新缓存有什么影响? This is what i trying to do, but i need to know what will happen if i replace the no-cache to re-cache

我将解释这个想法,在这个文本框中它将调用我的数据库中的最后一位数字并添加1,但我发现这有一个问题,如果使用此表单的多个用户有可能该数字将重复 . @If(@IsNewDoc;@Elements(@DbColumn("":"nocache";@DbName;"GPA";1))+1;@Return(GPnum))

我的想法指导我在这条道路上,如果我使用@dblookup来查找我的号码是否有重复但是,我不会通过它 .

1 回答

  • 2

    Recache不会帮助您避免重复 .

    您正尝试在Lotus Notes中增加计数器,以便为文档创建唯一的顺序标识符 . 这是许多人已经多次讨论过至少20年的问题 . 您可以在StackOverflow以及各种其他论坛,博客和文章中找到有用的信息 . 有效的两种方法是

    • 将最后一个计数器值存储在配置文档中,并使用文档锁定确保您没有两个用户同时访问和更新它 .

    • 不要直接在用户代码中设置计数器变量 . 编写代码以在字段中放置"pending"值,并依赖仅在一台服务器上运行的计划或触发后台代理来设置最终值 . (由于代理管理器保证一个数据库中一次只能运行一个代理,因此不会发生冲突 . )

    • 不要为您的标识符使用顺序计数器 . 请改用 @Unique 功能 . 文档将具有唯一代码而不是唯一编号 .

    请参阅this回答,this回答和this文章 .

相关问题