Каталог решений - Как формируется GUID?

Как формируется GUID?

Как формируется GUID?

В наличии

«Коллеги, есть идеи, как получить последнюю созданную характеристику? Реквизиты полностью идентичны(код, наименование, и т.п.).»(c)
«Насколько я знаю, ссылка не обеспечивает последовательность, а только уникальность.»(c)
«Я сделал по Максимум(Ссылка). Но, чета, мне кажется, это неправильно.»(c)
«Слышал что в ГУИд содержится как раз время создания и по всей логике вещей сортировка по ссылке должна сортировать по моменту создания объекта»(c)

Сколько раз вы слышали такие фразы? На удивление я не обнаружил информации по этой теме, пришлось разбираться самому…

Категория:

Описание

Начнем издалека../

Что такое GUID или уникальный идентификатор объекта?
GUID (Globally Unique Identifier) — статический уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2^128 или 3,4028*10^38), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала.
GUID состоит из четырех частей разделенных символом тире и содержащих в сумме 32 символа, которые являются шестнадцатеричным представлением 16 байт (128 бит). Т.е. два символа в GUID (октет) – это один байт в шестнадцатеричном виде. Пример GUID: b0d4ce5d-2757-4699-948c-cfa72ba94f86
[1]

Почему используется guid, а не простой auto-increment(indentity)?
Для использования гуидов есть 2 причины:
— хотим чтобы база данных или какой-нибудь другой сервер(кластер) не имел централизованного управления генерацией ключей
— нужно избавиться от проблемы создания одинакового идентификатора на разных рабочих серверах
Такие проблемы обычно возникают в распределенной среде исполнения, а кластер серверов позиционируется как распределенный и желательно полностью избежать единой точки выдачи уникальных ключей.
Если ваша система не имеет таких требований, вам не нужен UUID.
[1] [2]

В чем разница между uuid и guid?
UUID это термин из стандарта rfc4122, который опубликует всемирная организация стандартизации eitf.
Грубо говоря GUID это то что получилось на практике у Microsoft. Теория различается с практикой так же, как и XML с HTML.
[1] [2]

В бд гуиды имеют тип binary(16) и сравниваются (сортируются) побитово как бинарные данные: binary bit-for-bit comparison behavior 

upd: Как преобразовывать binary(16) в GUID1C и обратно?

 

has been added to your cart:
Оформление заказа