在.NET Framework 4.5
中,System.Guid表示一个全局唯一标识符。我应该在我的架构中使用alyaws Guid
类作为唯一标识符吗?我应该在哪种情况下使用它?哪种情况我不应该?
任何人都可以对这种情况做出详细的解释吗?
在.NET Framework 4.5
中,System.Guid表示一个全局唯一标识符。我应该在我的架构中使用alyaws Guid
类作为唯一标识符吗?我应该在哪种情况下使用它?哪种情况我不应该?
任何人都可以对这种情况做出详细的解释吗?
我觉得这个名字很能说明问题。如果您需要某些东西是全球唯一的,以便消除所有歧义,请使用 Guid。如果您需要一个项目仅在其对等项中是唯一的,请使用简单的东西,例如串行主键。
串行主键的唯一主要优点是 (1) 支持几乎所有现有的存储介质,(2) 口头交流的简单性,以及 (3) 存储大小。
话虽如此,如果 ID 永远/很少需要手动通信/键入,并且存储不是最重要的问题(例如在与主要对象相比分类法可以忽略不计的文档库中),那么实际上并没有不使用 Guid 的充分理由。
这很模糊。通常需要一个“唯一标识符”来标记数据。数据库引擎在没有您帮助的情况下已经非常擅长这样做,请始终确保首先利用它们的功能。
生成一个唯一的数字在直觉上很简单:比前一个多一个。魔鬼在细节中,前一个是什么?在很多情况下,您不想在进程会话结束后恢复编号,因此一个简单的变量就可以了。System.Guid 的价值在于它可以帮助您避免在您关心时必须解决存储问题。以产生无法形容的为代价。