什么是GUID?为什么和在哪里使用它?
我在很多地方,包括维基百科中都看到了GUID的引用,但没有明确说明何时要使用它。
如果有人能回答这个问题就好了。
谢谢。
什么是GUID?为什么和在哪里使用它?
我在很多地方,包括维基百科中都看到了GUID的引用,但没有明确说明何时要使用它。
如果有人能回答这个问题就好了。
谢谢。
GUID技术上代表全球唯一标识符。 实际上,它是一个128位的结构体,不太可能重复或产生冲突。如果进行数学计算,其值域在无量级。
在多个独立系统或客户端生成需要唯一标识符的ID时,请使用GUID。
例如,如果有5个客户端应用程序创建和插入事务数据到一个具有ID唯一约束的表中,则使用GUID。这可以避免强制客户端首先从服务器请求已发布的ID。
对于对象工厂和具有存储在不同表中的众多对象类型的系统也非常适用,其中不希望任何两个对象具有相同的ID。这使得缓存和清除模式更容易实现。
一个GUID是一个“全球唯一标识符”。您可以在任何需要与其他标识符保证不同的地方使用它。
通常,您只需要一个值是“局部唯一”的 - 例如数据库表中的主键标识,只需与该表中的其他行不同即可,但可以与其他表中的ID相同。(此处不需要GUID)
当您需要定义一个与您无法控制的他人定义的ID不同的ID时,通常会使用GUID。其中一个地方是ActiveX控件的接口标识符。任何人都可以创建ActiveX,并且不知道其他人将使用哪些控件 - - 而没有任何阻止所有人为其控件赋予相同的名称。GUID使它们保持独特。
GUID是时间(以非常小的秒数为单位)和定义您位置的数字的组合(有时取自您网络卡的MAC地址)(因此,它与其他人现在定义的任何其他GUID肯定是不同的)。
它们有时也被称为UUID(通用唯一标识符)。除了其他回答之外,这里有一个在线GUID生成器:
什么是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编程中的所有接口和对象。
GUID是“全局唯一标识符”的缩写,也称为UUID(通用唯一标识符)。
它基本上是一个128位的数字,以一种方式生成(请参见RFC 4112 http://www.ietf.org/rfc/rfc4122.txt),使得几乎不可能生成重复的数字。这样,我可以生成GUID而无需某个第三方组织给予我确保它们是唯一的。
GUID的广泛使用之一是作为Windows上COM实体(类、类型库、接口等)的标识符。使用GUID,开发人员可以在不去Microsoft获取唯一标识符的情况下构建他们的COM组件。尽管标识COM实体是GUID的主要用途,但它们用于许多需要唯一标识符的事情。一些开发人员将为数据库记录生成GUID,以为它们提供可在必须在许多不同数据库之间唯一时使用的ID。
通常,您可以将GUID视为序列号,任何人都可以随时生成它们,并且他们知道序列号将是唯一的。
获取唯一标识符的其他方法包括获取域名。为确保域名的唯一性,您必须从某些组织(最终由ICANN管理)获得它。
由于GUID可能很难处理(从人类可读的角度来看,它们是一串十六进制数字,通常分组如下:aaaaaaaa-bbbb-cccc-dddd-ffffffffffff),因此需要在不同组织之间使用另一种方案的某些命名空间(通常基于Internet域名)。
因此,按照惯例,Java包的命名空间以组织的域名(倒序)开头,后面跟着以某种组织特定方式确定的名称。例如,Java包的名称可能为:
com.example.jpackage
xmlns="http://www.w3.org/1999/xhtml"
GUID或UUID(全球唯一标识符或通用唯一标识符)是一个独特的ID :) 当您需要一些真正独特的机器生成内容时,有一些库可以帮助您获得它。
请参见维基百科上的GUID了解详细信息。
当您控制计数器(以某种方式,如SERIAL SQL类型或序列)递增时,就不需要GUID。索引“文本”值(GUID的文本形式)或128位二进制值(GUID是其中之一)比整数更昂贵。
有人说UUID是概念上的128位随机值,这基本上是正确的,但在阅读了一些关于UUID(GUID通常指微软对UUID的实现)的内容后,我发现有几个不同的UUID版本,其中大多数实际上并不是随机的。因此,可以为计算机(或其他东西)生成UUID,并能够可靠地重复该过程以获得相同的UUID,这对某些应用程序非常重要。
生成 GUID 可能会让人感到困难,因为这需要进行大量的数学计算。将其视为唯一标识符。您可以让 Visual Studio 为您生成一个,或者如果您正在使用 C# 或其他许多应用程序或网站,则可以使用 .NET。它们被认为是唯一的,因为有如此微小的机会会看到相同的 GUID,以至于不值得考虑。
128位全局唯一标识符。您可以生成GUID,直到日落,您永远不会生成相同的GUID,其他人也不会。它们在COM中被广泛使用。
例如,我们在其中一个产品中使用它们。我们的用户可以在各种设备上生成类别和卡片。我们希望确保我们不会混淆在一个设备上创建的类别与在另一个设备上创建的类别,因此无论谁生成它们,何时生成它们以及在哪里生成它们,都很重要确保ID是唯一的。因此,我们使用GUID(实际上,我们使用自己的64位数字方案,但它们类似于GUID)。