【问题标题】:Which circumstances should I use System.Guid for unique identifiers?我应该在哪些情况下使用 System.Guid 作为唯一标识符?
【发布时间】:2012-09-05 13:37:47
【问题描述】:

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

谁能详细解释一下这种情况?

【问题讨论】:

    标签: .net guid uniqueidentifier .net-4.5


    【解决方案1】:

    这很模糊。通常需要一个“唯一标识符”来标记数据。无需您的帮助,数据库引擎已经非常擅长此操作,请始终确保首先利用它们的功能。

    生成一个唯一的数字很简单:比前一个多一个。魔鬼在细节中,前一个是什么?在很多情况下,您不想在进程会话结束后恢复编号,因此一个简单的变量就可以了。 System.Guid 的价值在于它可以帮助您避免在您关心时必须解决存储问题。以产生难以言说的为代价。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2016-10-19
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 1970-01-01
        • 2016-03-15
        • 1970-01-01
        相关资源
        最近更新 更多