• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

@unique

  • Автор темы Xalet
  • Дата начала
X

Xalet

Есть такая функция @Unique. Возвращает по описание произвольное уникальное текстовое значение.

Кто знает, как она на самом деле работает и можно ли ей пользоваться для создания, к примеру, уникальных номеров в системе с 10+ серверами на которох размещена одна база синхронизируемая через реплики... Какой шанс, что значение в поле генерируемое функцией @Unique действительно будет уникальным?

Спасибо.
 
A

Akupaka

что-то ты плохо читал...
возвращает список уникальных значений, а не произвольное
т.е., @Unique("мама" : "папа" : "я" : "брат" : "брат" : "брат": "сестра") вернет "мама" : "папа" : "я" : "брат" : "сестра"
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Akupaka
а если просто дать @Unique то видаст PPUP-7UTHXE где PPUP = Petro PUPKIN

xalet

имхо плохое решение. но шанс очень большой например если номер доки PPUP-7UTHXE то повторится он может только -7UTHXE етой частю. а первая часть так и останется уникальной

P.S учтите PPUP ето нетолько Petro PUPKIN но и Pavel PUPKIN ну и никто не отменял двойников:)
 
A

Akupaka

оу... что-то я не то читал))) никогда не юзал ее без параметров
 
T

TIA

xalet
Знаю только что при формировании этого значения используются инициалы из текущей айдишки и что ibm'меры сами её пользуют.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
вот что нашел

The @Unique function, if used with no arguments, will return a unique character string such as this one: MAGN-3WWMRX. You can use @Unique to assign each document in a database an identifier that will always be unique, but which is much shorter, and thus, more manageable than the universal document ID. Many Notes developers store an identifier generated with @Unique in each Notes document. They're more manageable than the universal document ID, and they don't change when a document is cut and re-pasted, or when a replication or save conflict is resolved.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
@Unique то видаст PPUP-7UTHXE где PPUP = Petro PUPKIN
первые буквы инициатора + NoteID
как помним NoteID уникально в пределах ОДНОЙ базы
тоесть уникальность в пределах сервера уже не наблюдается
ну а если и серверов много то тогда вообще плохо

но для одной базы этого достаточно
 
O

oshmianski

сам не нарывался и не проверял, но слышал, что при автоматической генерации доков с @unique в качестве уникального ключа, нарывались на одинаковые значения. т.е. документы создаются слишком быстро и @unique возвращает одно и то же значение.
 
R

rins

сам не нарывался и не проверял, но слышал, что при автоматической генерации доков с @unique в качестве уникального ключа, нарывались на одинаковые значения. т.е. документы создаются слишком быстро и @unique возвращает одно и то же значение.

Не могу вспомнить источник, но именно @unique в рамках одной сессии, если "не успевает" то генерирует следующее значение на единицу больше предыдущего.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
oshmianski

враки. я использую @unique в одной базе. там автоматически генирируется 65 доков каждий день. дубликатов нет.
Но ищо раз ета функция как писал ToxaRat толоько для 1 бази. для реплик уже не подойдет имхо......
 
X

Xalet

Но ищо раз ета функция как писал ToxaRat толоько для 1 бази. для реплик уже не подойдет имхо......

т.е. в ситуации, как у меня, лучше не полагаться на такую, а генерировать айди самому?

Тогда делитесь кто как уникальность поддерживает.
Ато в том хозяйстве, что досталось мне по наследству как-то кривовато все. В ини файле хранится идентификатор места, плюс счетчик, плюс еще куча всего... И из этого получается айдишка. Вроде как все нормально и работоспособно, пока не начинается переезд на новый комп или не летит винч с ини файликом... Да и настройка апликухи на рабочем месте порядком усложняется...
 
T

TIA

Самый надёжный - UNID. Только пользователю им оперировать сложно.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
xalet

ну как я понимаю у вас каждий регион на отдельном серваке да?можно и @unique брать все таки
например есть сервак под конкретний регион регион например "Киев" тогда можно делать регион + @unique тогда уж точно будет сохранятся последовательность и не будет дубликатов.
но здесь и другой вопрос для кого ви делаете нумерацию документов????? для себя? или для налоговой???? если второй вариан тогда етот вариант нумерации сразу одпадает.....
 
X

Xalet

но здесь и другой вопрос для кого ви делаете нумерацию документов?????

Для связи между доками в базе... Пользователи номеров не видят и с ними не работают.

А сеть планируется 10ть серверов в 10ти областях, все это реплицируется через центр, и с каждым из серверов работают через реплики и напрямую Н-ое количество народу.

Самый надёжный - UNID.
UNID будет уникальным для всех документов в такой системе?
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Для связи между доками в базе... Пользователи номеров не видят и с ними не работают.
а какая у вас связь между доками?что документ "А" както силается на документ "Б"???? чтото непонятно......
 
T

TIA

UNID будет уникальным для всех документов в такой системе?

Да, UNID гарантированно уникальный. Если только не изгаляться, например присваиванием значения UNID'у. Но осторожней с cut-paste он присваивает документу новый UNID. Для связи документов, UNID - это то, что надо. Получение связанного документа по Unid на много быстреее чем по ключу по вьюхе.
 
X

Xalet

а какая у вас связь между доками?что документ "А" както силается на документ "Б"???? чтото непонятно......

Да, именно ссылается. И не на один, а на много... Вообще там как бы иерархия их, как в случае с респосами к примеру. Только вот создаваться они могут во всех направлениях...

Для связи документов, UNID - это то, что надо. Получение связанного документа по Unid на много быстреее чем по ключу по вьюхе.
Спасибо. возьму на вооружение.
 
P

PaVaP

Можно в док-те создать поле Computed when composed и в него сохранять юнид.
Для связи док-тов использовать данное поле.
Тогда после копи-паста (или еще чего...) связи между доками не порушатся.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!