在数据库VS中创建Guid PK。在代码中

时间:2012-03-13 07:48:51

标签: sql-server database architecture

什么是“更好”在数据库上生成主键或在应用程序代码中生成主键,特别是在为键使用GUID / UniqueIdentifier数据类型时。

我已经了解了使用Guid和int数据类型之间的区别,听起来Guids对于所谓的“离线生成”是可行的。

E.g。

而不是在数据库中有NEWID()约束,在一个项目中(我们使用实体框架)我们在应用程序代码Guid.NewGuid()中使用它来在插入数据时生成PK。

这是一种不好的做法吗?

我担心的是:

  • 数据库索引:数据库性能,因为Id可能不是顺序的
  • 密钥已被使用的机会达到640亿。 (考虑到应用程序不会很大,但可能需要增长空间)
  • 也许还有其他缺点?

0 个答案:

没有答案