【发布时间】:2012-03-13 16:04:51
【问题描述】:
什么是在数据库上生成主键或在应用程序代码中生成主键“更好”,特别是在为键使用 GUID/UniqueIdentifier 数据类型时。
我已经阅读了使用 Guid 和 int 数据类型之间的区别,听起来 Guid 对于所谓的“离线生成”是可行的。
例如
在一个项目(我们使用实体框架)中,我们在应用程序代码中使用Guid.NewGuid() 在插入数据时生成PK,而不是在数据库中使用NEWID() 约束。
这是一个坏方法吗?
我的担忧是:
- 数据库索引:数据库性能,因为 Id 可能不是连续的
- 密钥已被使用的概率为 640 亿分之一。 (考虑到应用程序不会很大,但可能需要增长空间)
- 也许还有其他缺点?
【问题讨论】:
标签: sql-server database architecture