uuid. Универсальный уникальный идентификатор версии 4

^math:uuid[]
^math:uuid[опции] 
[3.4.6]

Метод выдает случайную строку вида:
    22C0983C-E26E-4169-BD07-77ECE9405BA5

UUID (также известен как GUID) удобно использовать, когда трудно обеспечить или вообще нецелесообразно использовать сквозную нумерацию объектов. Например, при распределенных вычислениях. При работе с базами данных эффективнее использовать UUID версии 7.

Можно задать хеш опций:
·$.lower(false|true) - выдавать результат в нижнем регистре, по умолчанию - в верхнем;  
·$.solid(false|true) - исключать из результата символы '-', по умолчанию - не исключать.  


Пример
В разных филиалах компании собираются заказы, которые периодически отправляются в центральный офис. Для обеспечения уникальности идентификатора заказа используется
UUID.

# в разных филиалах происходит наполнение таблицы orders и order_details

# создаем уникальный идентификатор
$order_uuid[^math:uuid[]]


# добавляем запись о заказе
^void:
sql{
   insert into orders
       (order_uuid, date_ordered, total)
   values
       ('
$order_uuid
', '$date_ordered', $total)
}

#цикл по заказанным продуктам вокруг добавления записи о продукте
^void:
sql{
   insert into order_details
       (order_uuid, item_id, price)
   values
       ('
$order_uuid
', $item_id$price)
}



# с какой-то периодичностью выбирается часть таблицы orders (и order_details)
# отправляется (^mail:
send[…]) в центральный офис, 
# где части таблиц попадают в общие таблицы orders и order_details
# БЕЗ проблем с повторяющимся order_id


·Примечание: метод создает UUID версии 4, основыванный на случайных числах, а не на времени.  
В UUID не все биты случайны, и это так и должно быть.
xxxxxxxx-xxxx-4xxx-{8,9,A,B}xxx-xxxxxxxxxxxx

Подробная информация о UUID версии 4 доступна по ссылке:
https://www.rfc-editor.org/rfc/rfc9562.html


Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 27.12.2024