数据库表中主键的设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库表中主键的设置相关的知识,希望对你有一定的参考价值。

主键的设置方法有3种:

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

      1.主键的使用目的:

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

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

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

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

     3.使用业务主键做id:

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

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

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

 

以上是关于数据库表中主键的设置的主要内容,如果未能解决你的问题,请参考以下文章

SQL中主键和外键的定义是啥???

SQL中主键的使用

数据库中主键和外键的作用?

数据库设计中主键问题

数据库中主键和外键是干嘛用的?

数据库中 主键与外键的区别?