使用GUID作为数据表主键的好处[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 whynotfirst 的 blog

使用guid作为数据表主键的好处

 

数据表主健通常采用以下三种方式:

 

1.         自动递增值。

2.         唯一名称。这个是使用自己定义的算法来生成一个唯一序列号。

3.         guid(全局唯一标识符)。

 

guid与自动递增值及唯一名称比较

guid

在客户端生成,由guid的特性决定,通过guid生成的值可能出现重复的机会几乎等于零,因此保证在插入表的时候主键值唯一。

可以方便处理分布式数据的提交,比如:分店数据向总店提交╠╠直接将该部分数据插入即可。

支持离线数据处理。对本地数据包进行新增记录时即可将该数据表的关键字段值赋值,其处理方法是与在线新增时是一致的。

自动递增值

       在数据库服务器端生成,由于该值是由数据库系统内部处理的,亦保证其唯一性,但由于其是在数据库服务器端生成,因此必须将该值返回客户端,客户端通过该值过行其它操作。比如一张单据(主从表)是使用自动递增值,当插入单据抬头后,必须将单据抬头的关键字段值返回,再插入单据明细(单据明细是通过单据抬头关键字段进行关联的)。

不能很好处理分布式数据的提交,比如:分店数据向总店提交╠╠提交数据时必须重新生成该数据表的关键字段值,以保证该字段值唯一。

要支持离线数据处理需要进行额外的处理,对本地数据包进行保存记录(保存到本地)时需要插入一个假设唯一值,在提交离线数据回数据服务器时再重新生成真正的唯一值,并重新进行相关的处理。

本文关键:使用GUID作为数据表主键的好处
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top