数据库表中主键的设置

主键的设置方法有3种:

      一种是设置自增长主键,第二种是采用业务主键,第三种是生成唯一序列(使用uuid/guid);
如何选择主键设置方式:

      1.主键的使用目的:

           a.为了保证数据查找唯一;

           b.提高存储效率和索引效率。

      2.使用自增主键的场景:

        a:表中找不出3个以内字段可以表示的业务主键
        b:没有集中大量的插入操作
        c:不使用自增id作为外键(即id变化不影响系统逻辑和功能)
        此外自增主键的规律很明显,为了不让别人轻易的采集数据,同时符合以上条件,则优先选择自增主键;

     3.使用业务主键做id:

           a.如果你设计的表上存在非重复数据列,且常以该列检索数据,或该列还关联其他表的外键,譬如学号、会员卡号、身份证号这些,可以用来做为主键,主键在默认设置下      是聚集索引,这样检索学号、卡号这些效率上就会比较高。

     4.使用生成唯一的序列
           a.如果不满足使用自增的要求,则建议优先使用字符主键。类似网站数据库,可以采用uuid、guid这类无规则字符做主键。因为字符主键查询速度不比自增主键慢。

           b.考虑自增主键的弊端。很多表的ID会被其他表引用为外键,而且自增主键弊端是,用DELETE删除后,不会从新接着自增,而是接着删除前的ID自增;在多数据库迁移          下,自增则会很繁琐,需要另外做联合主键才能保证数据的唯一性。

 

转载于:https://www.cnblogs.com/lx909963393/p/shuixingle.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值