我真的没有看到UUID的观点.我知道碰撞的可能性实际上是零,但实际上零甚至几乎不可能.
有人可以举个例子,除了使用UUID之外别无选择吗?从我见过的所有用途中,我可以看到没有UUID的替代设计.当然设计可能稍微复杂一点,但至少它没有非零概率的失败.
UUID闻起来像全球变量.全局变量有许多方法可以实现更简单的设计,但它只是懒惰的设计.
我正在使用SQL Server 2005(可能在不久的将来使用SQL Server 2008)为网站创建一个新数据库.作为一名应用程序开发人员,我见过很多数据库使用integer(或bigint等)表格的ID字段来用于关系.但最近我也看到了使用unique identifier(GUID)作为ID字段的数据库.
我的问题是,一个人是否优于另一个人?将integer字段是查询和连接等快?
更新:为清楚起见,这是表中的主键.
可能重复:
您如何看待主键?
我知道使用GUID的好处,以及在数据库中使用和INT作为PK的好处.考虑到GUID本质上是128位INT而普通INT是32位,INT是节省空间(尽管在大多数现代系统中这一点通常没有实际意义).
最后,在什么情况下你会发现自己使用INT作为PK而不是GUID?
到目前为止,我一直在使用C#"Guid = Guid.NewGuid();" 生成唯一ID的方法,该ID可以使用Linq to SQL存储在我的某些SQL Server数据库表中作为ID字段.我被告知,出于索引的原因,使用GUID是一个坏主意,我应该使用自动递增Long.将使用长时间加速我的数据库事务?如果是这样,我该如何生成Long类型的唯一ID?
问候,
guid ×3
sql ×2
sql-server ×2
.net ×1
.net-4.0 ×1
architecture ×1
c# ×1
database ×1
long-integer ×1
primary-key ×1
t-sql ×1
uuid ×1