复合主键
主键通常定义在表的一列上,但这并不是必需的,也可使用多个列作为主键。此时上述的条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(多列中的单个列的值可以不唯一)。
表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键
将多个字段设置为主键,形成复合主键,这多个字段联合标识唯一性,其中,某几个主键字段值出现重复是没有问题的,只要不是有多条记录的所有主键值完全一样,就不算重复
超键
在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
候选键
是最小超键,即没有冗余元素的超键。
外键
在一个表中存在的另一个表的主键称此表的外键
主键的选择
代理主键(推荐使用)
与业务无关的,无意义的数字序列。
不与业务耦合,因此更容易维护
通用的键策略能够减少要编写的源码数量,减少系统的总体拥有成本
自然主键
事物属性中的自然唯一标识