Что такое GUID? Почему и где я должен его использовать?


Что такое GUID? Почему и где я должен его использовать?
Я видел ссылки на GUID во многих местах, и в Википедии, но это не очень ясно говорит вам, где его использовать. Если бы кто-то мог ответить на этот вопрос, было бы неплохо. Спасибо

15 59

15 ответов:

GUID технически означает глобальный уникальный идентификатор. То, что это, на самом деле, является 128-битной структурой, которая вряд ли чтобы когда-либо повторить или создать столкновение. Если вы делаете математику, область значений находится в undecillions.

используйте GUID, когда у вас есть несколько независимых систем или клиентов, генерирующих идентификаторы, которые должны быть уникальными.

например, если у меня есть 5 клиентских приложений, создающих и вставляющих транзакционные данные в таблицу это имеет уникальное ограничение на идентификатор, а затем использовать GUID. Это предотвращает необходимость принудительного запроса клиентом сначала выданного идентификатора с сервера.

Это также отлично подходит для фабрик объектов и систем, которые имеют множество типов объектов, хранящихся в разных таблицах, где вы не хотите, чтобы любые 2 объекта имели один и тот же идентификатор. Это значительно упрощает реализацию схем кэширования и очистки.

GUID - это "глобальный уникальный идентификатор". Вы используете его везде, где вам нужен идентификатор, который гарантированно будет отличаться от любого другого.

обычно вам нужно только значение, чтобы быть "локально уникальным" -- идентификатор первичного ключа в таблице базы данных,например, должен отличаться только от других строк в этой таблице, но может быть таким же, как идентификатор в других таблицах. (нет необходимости в GUID здесь)

GUID обычно используются, когда вы будете определять идентификатор, который должен отличаться от идентификатора, который будет определять кто-то другой (вне вашего контроля). Одно такое место в идентификаторе интерфейса на элементах управления ActiveX. Любой может создать ActiveX, и не знаю, с каким другим элементом управления кто-то будет использовать их с - - - и нет ничего, чтобы остановить всех от предоставления их элементы управления с тем же именем. Гиды сохраняют их различными.

GUID представляют собой комбинацию времени (в очень малых долях секунды) (поэтому он гарантированно отличается от любого GUID, определенный до или позже), и номер, определяющий ваше местоположение (иногда берется из MAC-адреса вашей сетевой карты) (поэтому он обязательно будет отличаться от любого другого GUID, определенного прямо сейчас кем-то другим).

Они также иногда известные как идентификаторы UUID (универсальный уникальный идентификатор).

как дополнение ко всем другим ответам, вот онлайн генератор GUID:

http://www.guidgenerator.com/

что такое GUID?

GUID (или UUID) - это аббревиатура "Глобальный уникальный идентификатор" (или "Универсальный Уникальный Идентификатор"). Оно это 128-разрядное целое число, используемое для определите ресурсы. Термин GUID является обычно используется разработчиками, работающими с помощью технологий Microsoft, в то время как UUID используется везде.

насколько уникален идентификатор GUID?

128-бит достаточно большой и алгоритм генерации достаточно уникален что если 1,0000,000,000 идентификаторы в вторые были сгенерированы за 1 год вероятность дубликата была бы только 50%. Или если каждый человек на Земле создается 600,000,000 там идентификаторы будет только 50% вероятности дубликат.

Как используются GUID?

GUID используются при разработке программного обеспечения как ключи базы данных, компонент идентификаторы, или просто где угодно иначе действительно уникальный идентификатор-это требуемый. Идентификаторы используются для определить все интерфейсы и объекты в COM Программирование.

GUID - это "глобально уникальный идентификатор". Также называется UUID (универсальный уникальный идентификатор).

это в основном 128-битное число, которое генерируется таким образом (см. RFC 4112 http://www.ietf.org/rfc/rfc4122.txt), что делает практически невозможным создание дубликатов. Таким образом, я могу генерировать GUID без какой-либо сторонней организации, которая должна дать их мне, чтобы убедиться, что они уникальны.

одно широко распространенное использование GUID - это идентификаторы для COM-объектов на Windows (классы, typelibs, интерфейсы и т. д.). Используя GUID, разработчики могут создавать свои COM-компоненты, не обращаясь в Microsoft, чтобы получить уникальный идентификатор. Несмотря на то, что идентификация com-сущностей является основным использованием GUID, они используются для многих вещей, которые нуждаются в уникальных идентификаторах. Некоторые разработчики будут создавать идентификаторы GUID для записей базы данных, чтобы предоставить им идентификатор, который можно использовать, даже если они должны быть уникальными во многих разных базах данных.

Как правило, вы можете думать о GUID как серийный номер, который может быть сгенерирован кем угодно в любое время, и они будут знать, что серийный номер будет уникальным.

другие способы получения уникальных идентификаторов включают в себя получение доменного имени. Чтобы обеспечить уникальность доменных имен, вы должны получить их от какой-либо организации (в конечном счете управляемой ICANN).

потому что GUID может быть громоздким (с точки зрения человека, читаемого они представляют собой строку шестнадцатеричных чисел, обычно сгруппированных так: aaaaaaaa-bbbb-cccc-dddd-ffffffffffff), некоторые пространства имен, которым нужны уникальные имена в разных организациях, используют другую схему (часто основанную на доменных именах Интернета).

таким образом, пространство имен для пакетов Java по соглашению начинается с доменного имени orgnaization (reversed), за которым следуют имена, определенные каким-либо специфическим способом организации. Например, пакет Java может быть назван:

com.example.jpackage

это означает, что работа с коллизиями имен становится ответственность каждой организации.

пространства имен XML также становятся уникальными аналогичным образом-по соглашению, кто-то, создающий пространство имен XML, должен сделать его " под " зарегистрированным доменным именем под своим контролем. Например:

xmlns="http://www.w3.org/1999/xhtml"

еще один способ управления уникальными идентификаторами-для MAC-адресов Ethernet. Компания, которая делает карты Ethernet, должна получить блок адресов, назначенных им IEEE (я думаю, что это IEEE). В этом случае схема работала довольно хорошо, и даже если производитель лажает и выдает карты с одинаковыми MAC-адресами, все будет работать нормально, пока эти карты находятся не в одной подсети, поскольку за пределами подсети, IP-адрес используется для маршрутизации пакетов. Хотя есть некоторые другие виды использования MAC-адресов, которые могут быть затронуты - один из алгоритмов для создания GUID использует MAC-адрес в качестве одного параметра. Этот метод генерации GUID больше не так широко используется, потому что он считается угрозой конфиденциальности.

один из примеров схемы, чтобы придумать уникальные идентификаторы, которые не очень хорошо было Microsoft не представила документы для драйверы vxd-драйвера в Windows 9Х. Разработчики сторонние драйверы vxd-драйвера должны задать Microsoft для набора идентификаторов для использования в каких-либо драйверах третьей стороны писал. Таким образом, Microsoft может гарантировать, что не было дубликатов идентификаторов. К сожалению, многие авторы драйверов никогда не беспокоились и просто использовали любой идентификатор в Примере VxD они использовались как отправная точка. Я не уверен, сколько проблем это вызвало - я не думаю, что уникальность VXD ID была абсолютно необходима, но это, вероятно, повлияло на некоторые функции в некоторых API.

GUID или UUID (глобально против универсально) уникальный идентификатор-это, ну, уникальный идентификатор :) когда вам нужно что-то действительно уникальное сгенерированное машиной, есть библиотеки, чтобы получить его.

посмотреть GUID в Википедии для сведения.

Что касается того, когда вам не нужен GUID, это когда счетчик, который вы контролируете (так или иначе, например, последовательный тип SQL или последовательность), увеличивается. Индексирование "текстового" значения (GUID в текстовой форме) или 128-битного двоичного значения (который является GUID) намного дороже, чем целое число.

кто-то сказал, что они концептуально 128-битные случайные значения, и это по существу верно, но сделав небольшое чтение на UUID (GUID обычно относится к реализации Microsoft UUID), я вижу, что существует несколько различных версий UUID, и большинство из них на самом деле не являются случайными. Таким образом, можно создать UUID для машины (или что-то еще) и иметь возможность надежно повторить этот процесс, чтобы получить тот же UUID в будущем, что важно для некоторых приложения.

для меня легче думать о них как просто "128-битные случайные значения". По сути, это то, что они есть. Есть некоторые алгоритмы для включения немного информации в несколько цифр вашего GUID (таким образом, случайная часть становится немного меньше), но все же они довольно большие почти случайные значения.

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

Я оставлю это вам, чтобы выяснить, где их использовать, но другие ответы уже есть некоторые примеры. Пусть ваше воображение разыграется. :)

может быть трудно понять из-за всей математики, которая идет за их созданием. Думайте об этом как об уникальном идентификаторе. Вы можете заставить Visual Studio создать его для вас или .NET, если вы используете C# или одно из многих других приложений или веб-сайтов. Они считаются уникальными, потому что есть такой глупый маленький шанс, что вы увидите один и тот же дважды, что это не стоит рассматривать.

128-битный уникальный идентификатор. Вы можете генерировать GUID с этого момента до захода солнца, и вы никогда не генерируете один и тот же GUID дважды, и никто другой не будет. Они используются много с COM.

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

несколько лет назад я работал над системой центра обработки вызовов ACD, где мы хотели собрать подробные записи вызовов из нескольких процессоров вызовов в одну базу данных. Я настраиваю столбец в MS SQL для создания GUID для ключа базы данных, а не с помощью системного последовательного идентификатора (столбец идентификаторов). Тогда это требовало установки значения по умолчанию в NewID (или генерирования его в коде, но функция NewID () была более безопасной). Конечно, имея большое значение для ключа может поднять несколько бровей, но я предпочел бы отказаться от пространства, чем рисковать столкновением.

Я не видел ни одного адреса, использующего GUID в качестве ключа базы данных, поэтому я подумал, что это может помочь узнать, что Вы тоже можете это сделать.

идентификатор GUID-глобальный уникальный идентификатор.

используйте его, когда вы хотите однозначно идентифицировать что-то в глобальном контексте.

этот генератор может быть удобно.

GUID означает "глобальный уникальный идентификатор", и вы используете его, когда хотите иметь, erm, глобальный уникальный идентификатор.

в RSS-каналах, например, вы должны иметь идентификатор GUID для каждого элемента в ленте. Таким образом, программа чтения ленты может отслеживать, прочитали ли вы этот элемент или нет. Без GUID, это было бы невозможно сказать.

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

вы также увидите термин UUID, который означает " универсальный уникальный идентификатор.- По сути, между ними нет никакой разницы. UUID-более подходящий термин. GUID-это термин, используемый Microsoft.

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

представьте, что у вас есть сервер с сеансами, если вы даете каждому сеансу GUID, вы уверены, что он будет уникальным для каждого сеанса, когда-либо созданного вашим сервером. Это полезно для отслеживания ошибок.

одно особенно полезное приложение GUID, которое я нашел, использует их для отслеживания уникальных посетителей в веб-приложениях, где посетители анонимны (т. е. не вошли в систему или не зарегистрированы).

The Википедия статья о GUID довольно ясно, для чего они используются - возможно, перефразирование вашего вопроса поможет - для чего вам нужен GUID?