我应该在哪种情况下使用System.Guid获取唯一标识符?

时间:2012-09-05 13:37:48

标签: .net guid uniqueidentifier .net-4.5

.NET Framework 4.5中,System.Guid代表全局唯一标识符。我应该在我的架构中使用 alyaws Guid类作为唯一标识符吗?我应该用哪种情况呢?哪种情况我不应该?

任何人都可以针对这种情况进行详细的解释吗?

2 个答案:

答案 0 :(得分:1)

我认为这个名字很有说服力。如果您需要一些全球唯一的东西,以便消除所有歧义,请使用Guid。如果您需要一个项目仅在其对等项中是唯一的,请使用类似串行主键的简单项。

串行主键的唯一主要优点是(1)支持几乎所有现有存储介质,(2)口头通信的简单性,以及(3)存储大小。

话虽如此,如果ID永远/很少需要手动传送/加密,并且存储不是最重要的问题(例如在文档库中,分类与主要对象相比可以忽略不计),那么不是真正的理由不使用Guid。

答案 1 :(得分:1)

这很模糊。通常需要“唯一标识符”来标记数据。没有你的帮助,数据库引擎已经非常擅长这样做,总是一定要先利用他们的能力。

生成一个唯一的数字非常简单:比前一个更多。魔鬼在细节,前一个是什么?有很多情况下你不关心在进程会话结束后继续编号,所以一个简单的变量就可以了。 System.Guid的价值在于它可以帮助您避免在照顾时解决存储问题。以产生无法形容的为代价。