为什么asp.net使用GUID列而不是bigint

时间:2011-12-09 21:08:54

标签: c# asp.net sql sql-server

为什么asp.net使用GUID列而不是bigint作为成员资格,角色,个人资料提供者?

我不确定是否需要将这些表中的任何一个表复制或与另一个表合并,正如我所听到的那样是在int / bigint上使用guid的最可接受的原因。

5 个答案:

答案 0 :(得分:4)

它可能使用GUID类型的相反方面,为什么你想知道它应该:因为它们的创建者,打算被许多不同的网站使用,不能保证它不会< / em>用于需要与其他数据合并的情况。

答案 1 :(得分:2)

guids的主要好处是它们在所有数据和表格中都是完全独特的;方式,在价值方面更多的头部空间

答案 2 :(得分:2)

使用Guids还可以帮助人们将成员资格与Active Directory和Windows SID配对。绝对不能用系统生成的整数来做到这一点。

答案 3 :(得分:1)

请记住,成员资格,角色和配置文件提供程序支持一组表中多个应用程序的角色和成员资格。如果必须为所有这些应用程序维护自动递增列,那么维护噩梦将成为整个企业解决方案中可能发生的所有删除操作的噩梦。 MS SQL Server中的GUID即唯一标识符使维护更加容易。

答案 4 :(得分:0)

另一方面,为什么不使用GUID? 指数的规模和效率低是主要的。这些都只是大量数据的真正问题,而你的例子并非如此。

如果它是bigint并且你有三个内置的配置文件,每个人的第一个将是四个,现在要合并两个实例,你必须重新键入其中一个。如果您没有负责并且在任何地方使用代理键,那就是噩梦。

因此,当我在设计中看到这个时,我的问题是,我能否使用GUID ....