нет дублирования в базе данных lotus note

Всем добрый день.

каков эффект повторного кэширования, если я использую его для обновления данных? Это то, что я пытаюсь сделать, но мне нужно знать, что произойдет, если я заменю no-cache на re-cache

я объясню идею, в этом текстовом поле он вызовет последнюю цифру в моей базе данных и добавит 1, но я понимаю, что в этом есть проблема, если несколько пользователей используют эту форму, есть вероятность, что число будет дублироваться.@If(@IsNewDoc;@Elements(@DbColumn("":"nocache";@DbName;"GPA";1))+1;@Return(GPnum))

моя мысль направляет меня на этом пути, если я использую @dblookup, чтобы найти дублирование в моем номере, но я не дохожу до этого.


person LyodMichael    schedule 26.11.2012    source источник


Ответы (1)


Recache не поможет вам избежать дубликатов.

Вы пытаетесь увеличить счетчик в Lotus Notes, чтобы создать уникальный последовательный идентификатор для документов. Это проблема, которая обсуждалась много раз многими людьми на протяжении как минимум 20 лет. Вы можете найти полезную информацию здесь, в StackOverflow, а также на различных других форумах, в блогах и статьях. Работают два подхода:

  • Сохраните последнее значение счетчика в документе конфигурации и используйте блокировку документа, чтобы гарантировать, что два пользователя не получат к нему доступ и не обновят его одновременно.
  • Не устанавливайте переменную счетчика непосредственно в пользовательском коде. Напишите свой код, чтобы поместить в поле значение «ожидание», и полагайтесь на запланированный или активированный фоновый агент, который работает только на одном сервере, чтобы установить окончательное значение. (Поскольку диспетчер агентов гарантирует, что только один агент может работать одновременно в одной базе данных, у вас не будет конфликтов.)
  • Не используйте последовательный счетчик для вашего идентификатора. Вместо этого используйте функцию @Unique. Документы будут иметь уникальный код вместо уникального номера.

См. этот ответ и этот ответ и эту статью.

person Richard Schwartz    schedule 26.11.2012