我正在尝试连接两个数据库中的数据,这两个数据库都是由不同的UI应用程序自动创建的。在一个中,所有键都采用这种格式“D8FC23D7-97D6-42F5-A52F-1CE93087B3A4”。
这有什么理由可以吗?我还看到了GIS数据库中看起来相似的键。我不知道这些是否应该是一些计算密钥,可能是为了检测我正在尝试做什么,或者只是随机出现其他意图。
PS我正在使用SQL Server。根据我的收集,这不是SQL Server自动生成的。
答案 0 :(得分:2)
这是一个GUID,也称为UUID,是一种通用唯一标识符(例如,wikipedia或rfc4122)。 guid背后的想法是应用程序可以生成全局唯一的标识符,而无需中央单元进行任何编排(参见下面rfc4122的动机)。
各种系统,数据库和编程语言都提供了生成UUID的功能(例如,sql server中的SELECT NEWID()
);好处是,使用UUID生成器,应用程序可以自动生成方式生成全局标识的单元。
UUID可以作为数据库密钥,但在大多数情况下,您会发现更轻量级和更合适的密钥。
使用UUID的主要原因之一是没有集中的 管理它们需要权限(尽管一种格式使用
IEEE 802节点标识符,其他不标识。结果,生成
按需可以完全自动化,并用于各种各样的 目的。这里描述的UUID生成算法非常支持 如果是,每台机器的高分配率高达每秒1000万 必要的,以便它们甚至可以用作交易ID。UUID具有固定大小(128位),相当小 与其他替代方案相比。这很适合分类,
各种订购和散列,存储在数据库中,简单
分配,以及一般编程的简易性。由于UUID是独特且持久的,因此它们制作出优秀的Uniform 资源名称。无需生成新UUID的独特能力 注册过程允许UUID成为其中一个URN 最低的铸造成本。