主键、外键、索引理解以及主键类型选择

主键

主键的主要作用是保证表的完整、保证表数据行的唯一性质

  • 业务主键(自然主键):在数据库表中把具有业务逻辑含义的字段作为主键,称为“自然主键(Natural Key)”。自然主键的含义就是原始数据中存在的不重复字段,直接使用成为主键字段。 这种方式对业务的耦合太强,一般不会使用
  • 逻辑主键(代理主键):在数据库表中采用一个与当前表中逻辑信息无关的字段作为其主键,称为“代理主键”。逻辑主键被广泛使用在业务表、数据表,一般有几种生成方式:uuid、自增
  • 复合主键(联合主键):通过两个或者多个字段的组合作为主键。耦合性太高且大都能使用逻辑主键替代不建议使用。使用复合主键的原因可能是:对于关系表来说必须关联两个实体表的主键,才能表示它们之间的关系,那么可以把这两个主键联合组成复合主键即可。

外键

外键是一种约束,表与表的关联约束,例如a表依赖关联b表的某个字段,你可以设置a表字段外键关联到b表的字段,将两张表强制关联起来,这时候产生两个效果:

  1. 表 b 无法被删除,你必须先删除a表
  2. 新增的数据必须与表b某行关联

索引

索引用于快速找出在某个列中有一特定值的行

使用原则:

  • 对经常更新的表就避免对其进行过多的索引,对经常用于查询的字段应该创建索引
  • 数据量小的表最好不要使用索引,因为由于数据较少,可能查询全部数据花费的时间比遍历索引的时间还要短,索引就可能不会产生优化效果。
  • 在一同值少的列上(字段上)不要建立索引,比如在学生表的"性别"字段上只有男,女两个不同值。相反的,在一个字段上不同值较多可是建立索引。

参考博客

posted @ 2021-07-21 14:28  bleso  阅读(43)  评论(0编辑  收藏  举报