我正在开发一个具有一些潜在大数据表的asp.net应用程序.我想知道定义主键的最佳方法是什么.我知道之前有人问过,但由于这是针对特定情况的,我认为这个问题是有效的.
我在SQL Server 2008数据库上使用Entity Framework 4.
考虑以下因素,定义主键有哪些可能性:
>随着时间的推移,记录数量有可能超过32位边界,因此无法实现自动增量整数.
>不可能在表中的其他列的组合上定义主键.>出于数据同步的原因,应用程序生成的id优先于数据库生成的id.此外,在EF中,它意味着额外往返数据库以检索新生成的id.>对于插入性能,最好使用顺序键.>我认为(顺序)guid的空间要求是一个缺点.>对于字符串id,最好不区分大小写.到目前为止,我自己想出的是一个自定义算法,它生成一个日期时间部分和一个随机部分,转换为十六进制字符串表示.这让我的字符串略短于guid.我仍然可以将它转换为base64,但这将违反项目nr 6.
谢谢你的建议.
您可以考虑将密钥存储为 BIGINT(8字节整数).BIGINT与INT完全一样,可以以相同的方式在自动递增标识列中使用.
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did69352