为什么数据库有一个奇怪的字母数字键

时间:2017-01-19 13:46:41

标签: sql-server primary-key-design

我正在尝试连接两个数据库中的数据,这两个数据库都是由不同的UI应用程序自动创建的。在一个中,所有键都采用这种格式“D8FC23D7-97D6-42F5-A52F-1CE93087B3A4”。

这有什么理由可以吗?我还看到了GIS数据库中看起来相似的键。我不知道这些是否应该是一些计算密钥,可能是为了检测我正在尝试做什么,或者只是随机出现其他意图。

PS我正在使用SQL Server。根据我的收集,这不是SQL Server自动生成的。

1 个答案:

答案 0 :(得分:2)

这是一个GUID,也称为UUID,是一种通用唯一标识符(例如,wikipediarfc4122)。 guid背后的想法是应用程序可以生成全局唯一的标识符,而无需中央单元进行任何编排(参见下面rfc4122的动机)。

各种系统,数据库和编程语言都提供了生成UUID的功能(例如,sql server中的SELECT NEWID());好处是,使用UUID生成器,应用程序可以自动生成方式生成全局标识的单元。

UUID可以作为数据库密钥,但在大多数情况下,您会发现更轻量级和更合适的密钥。

  

使用UUID的主要原因之一是没有集中的   管理它们需要权限(尽管一种格式使用
  IEEE 802节点标识符,其他不标识。结果,生成
  按需可以完全自动化,并用于各种各样的   目的。这里描述的UUID生成算法非常支持   如果是,每台机器的高分配率高达每秒1000万   必要的,以便它们甚至可以用作交易ID。

     

UUID具有固定大小(128位),相当小   与其他替代方案相比。这很适合分类,
  各种订购和散列,存储在数据库中,简单
  分配,以及一般编程的简易性。

     

由于UUID是独特且持久的,因此它们制作出优秀的Uniform   资源名称。无需生成新UUID的独特能力   注册过程允许UUID成为其中一个URN   最低的铸造成本。