关于现在手上做的项目的数据库设计思考

  1. 主键不应该有任何意义,只是为了标志数据的唯一性.
  2. 现在做的项目,因为牵涉到数据转移的原因,对主键没有进行大的改动,现在的主键,除了标志数据来源以外,还有数据信息的年月日等,非常的麻烦
  3. 自动编号的主键,如果动态的生成表单后,还需要重复生成trigger和sequence来自增长,非常难以维护,而且以后数据迁移也会变得相当的棘手
  4. max+1,现在采用的就是这个方法,如果数据量非常大的情况下,取max会很慢,而且在并发的情况下会产生相同的数据而导致数据不能正常的插入数据库
  5. GUID主键,这是目前比较好的生成主键的办法,在.NET里可以直接使用System.Guid.NewGuid()进行生成,在SQL里也可以使用 NewID()生成
  6. 缺点是: 
    GUID 值较长,不容易记忆和输入,而且这个值是随机、无顺序的 
    GUID 的值有 16 个字节,与其它那些诸如 4 字节的整数相比要相对大一些。这意味着如果在数据库中使用               uniqueidentifier 键,可能会带来两方面的消极影响:存储空间增大;索引时间较慢。

 

 

分类:  Oracle

本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/archive/2010/05/01/1725552.html,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值