Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

http://www.guidgenerator.com/

Что такое GUID?

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

Насколько уникален GUID?

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

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

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

Ответ 4

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 (обратного), за которым следуют имена, которые определяются определенным организационным способом. Например, пакет 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 ID для драйверов VxD в Windows 9x. Разработчики сторонних драйверов VxD должны были попросить Microsoft указать набор идентификаторов для любых драйверов, которые написал третий сторонний разработчик. Таким образом, Microsoft может гарантировать отсутствие дубликатов идентификаторов. К сожалению, многие авторы драйверов никогда не беспокоились и просто использовали любой идентификатор в примере VxD, который они использовали в качестве отправной точки. Я не уверен, как много проблем это вызвало - я не думаю, что уникальность VxD ID была абсолютно необходима, но, вероятно, это повлияло на некоторые функции в некоторых API.

Ответ 5

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

Подробнее см. GUID в wikipedia.

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

Ответ 6

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

Ответ 7

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

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

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

Ответ 8

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

Ответ 9

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

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

Ответ 10

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

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

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

Ответ 11

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

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

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

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

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

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

Ответ 15

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