8.12. Тип UUID
Тип даннÑÑ
uuid ÑоÑ
ÑанÑÐµÑ ÑнивеÑÑалÑнÑе ÑникалÑнÑе иденÑиÑикаÑоÑÑ (Universally Unique Identifiers, UUID), опÑеделÑннÑе в RFC 4122, ISO/IEC 9834-8:2005 и ÑвÑзаннÑÑ
ÑÑандаÑÑаÑ
. (РнекоÑоÑÑÑ
ÑиÑÑемаÑ
ÑÑо назÑваеÑÑÑ GUID, глобалÑнÑм ÑникалÑнÑм иденÑиÑикаÑоÑом.) ÐÑÐ¾Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой 128-биÑное знаÑение, генеÑиÑÑемое ÑпеÑиалÑнÑм алгоÑиÑмом, пÑакÑиÑеÑки гаÑанÑиÑÑÑÑим, ÑÑо ÑÑим же алгоÑиÑмом оно не бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑено болÑÑе нигде в миÑе. Таким обÑазом, ÑÑи иденÑиÑикаÑоÑÑ Ð±ÑдÑÑ ÑникалÑнÑми и в ÑаÑпÑеделÑннÑÑ
ÑиÑÑемаÑ
, а не ÑолÑко в единÑÑвенной базе даннÑÑ
, как знаÑÐµÐ½Ð¸Ñ Ð³ÐµÐ½ÐµÑаÑоÑов поÑледоваÑелÑноÑÑей.
UUID запиÑÑваеÑÑÑ Ð² виде поÑледоваÑелÑноÑÑи ÑеÑÑнадÑаÑеÑиÑнÑÑ ÑиÑÑ Ð² нижнем ÑегиÑÑÑе, ÑазделÑннÑÑ Ð·Ð½Ð°ÐºÐ°Ð¼Ð¸ минÑÑа на неÑколÑко гÑÑпп, в Ñаком поÑÑдке: гÑÑппа из 8 ÑиÑÑ, за ней ÑÑи гÑÑÐ¿Ð¿Ñ Ð¸Ð· 4 ÑиÑÑ Ð¸, наконеÑ, гÑÑппа из 12 ÑиÑÑ, ÑÑо в ÑÑмме ÑоÑÑавлÑÐµÑ 32 ÑиÑÑÑ Ð¸ пÑедÑÑавлÑÐµÑ 128 биÑ. ÐÑÐ¸Ð¼ÐµÑ UUID в ÑÑом ÑÑандаÑÑном виде:
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
Postgres Pro Ñакже пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°Ð»ÑÑеÑнаÑивнÑе ваÑианÑÑ: ÑиÑÑÑ Ð² веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе, ÑÑандаÑÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ, заклÑÑÑннÑÑ Ð² ÑигÑÑнÑе Ñкобки, запиÑÑ Ð±ÐµÐ· минÑÑов или Ñ Ð¼Ð¸Ð½ÑÑами, ÑазделÑÑÑими лÑбÑе гÑÑÐ¿Ð¿Ñ Ð¸Ð· ÑеÑÑÑÑÑ ÑиÑÑ. ÐапÑимеÑ:
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}ÐÑводиÑÑÑ Ð·Ð½Ð°Ñение ÑÑого Ñипа вÑегда в ÑÑандаÑÑном виде.
Ð Postgres Pro вÑÑÑÐ¾ÐµÐ½Ñ ÑÑнкÑии Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑов UUID, но Ð½ÐµÑ Ð²Ð½ÑÑÑенней ÑÑнкÑии генеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ UUID, поÑÐ¾Ð¼Ñ ÑÑо не ÑÑÑеÑÑвÑÐµÑ ÐºÐ°ÐºÐ¾Ð³Ð¾-Ñо единÑÑвенного алгоÑиÑма, Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑего Ð´Ð»Ñ Ð²ÑÐµÑ Ð¿Ñиложений. СгенеÑиÑоваÑÑ UUID можно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑного модÑÐ»Ñ uuid-ossp, в коÑоÑом ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð½ÐµÑколÑко ÑÑандаÑÑнÑÑ Ð°Ð»Ð³Ð¾ÑиÑмов, а можно воÑполÑзоваÑÑÑÑ Ð¼Ð¾Ð´Ñлем pgcrypto, где Ñоже еÑÑÑ ÑÑнкÑÐ¸Ñ Ð³ÐµÐ½ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑлÑÑайнÑÑ UUID. ÐÑоме Ñого, можно ÑделаÑÑ ÑÑо в клиенÑÑком пÑиложении или в дÑÑгой библиоÑеке, подклÑÑÑнной на ÑÑоÑоне ÑеÑвеÑа.