- 主键不应该有任何意义,只是为了标志数据的唯一性.
- 现在做的项目,因为牵涉到数据转移的原因,对主键没有进行大的改动,现在的主键,除了标志数据来源以外,还有数据信息的年月日等,非常的麻烦
- 自动编号的主键,如果动态的生成表单后,还需要重复生成trigger和sequence来自增长,非常难以维护,而且以后数据迁移也会变得相当的棘手
- max+1,现在采用的就是这个方法,如果数据量非常大的情况下,取max会很慢,而且在并发的情况下会产生相同的数据而导致数据不能正常的插入数据库
- GUID主键,这是目前比较好的生成主键的办法,在.NET里可以直接使用System.Guid.NewGuid()进行生成,在SQL里也可以使用 NewID()生成
- 缺点是:
GUID 值较长,不容易记忆和输入,而且这个值是随机、无顺序的
GUID 的值有 16 个字节,与其它那些诸如 4 字节的整数相比要相对大一些。这意味着如果在数据库中使用 uniqueidentifier 键,可能会带来两方面的消极影响:存储空间增大;索引时间较慢。
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构