Об использовании GUID - PullRequest
0 голосов
/ 16 июня 2011

Вики сказал, что раньше он использовал класс, уникальный идентификатор интерфейса, как насчет объекта (фактического экземпляра) ??

При работе с SQL я также вижу GUID для поля идентификатора (пользователь таблицы, и т. Д.)в базе данных aspnetdb в шаблонном проекте asp.net MVC)

Поэтому я хочу четко понять использование GUID, в каком случае его следует использовать, и действительно ли оно уникально,

Любое объяснение приветствуется

спасибо

1 Ответ

0 голосов
/ 16 июня 2011

Для хорошего обзора того, что такое GUID, проверьте нашего хорошего друга Википедия: GUID .

и действительно ли он уникален

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

Из-за этого некоторым людям нравится использовать его.в качестве первичного ключа для таблиц базы данных.Лично я не люблю это делать, потому что:

  • автоматически увеличивающееся целое число дает мне достаточно уникальности, чтобы использовать его в качестве первичного ключа
  • GUID - это массивная PITAиметь дело с тем, когда вы пишете SQL-запросы.

Вики сказала, что раньше использовала класс, интерфейс с уникальным идентификатором

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

...