- increment
每次自增,适合所有数据库,但是不要使用在多线程,主键类型是数值型。
- identity
每次自增,适用于支持identity的数据库(mysql,sql server),主键类型是数值类型。
- sequence
每次自增,适用于long,short,int类型。
- native
native生成器能根据底层数据库系统的类型,自动选择合适的标识符生成器,适合于跨数据库平台。使用 identity,sequence,hilo,主键类型是数值型。
- hilo
高低位算法生成器,按照一种high/low算法生成标识符。
- uuid
用一个128-bit的UUID算法生成字符串类型的标识符,使用了网络中的IP地址生成唯一。主键属性类型不能是数值型。
- assigned
用户自己设置主键值,主键类型可以是数值,字符型。
- 映射复合主键
- foreign
在one-to-one中,有另一张表的主键(person)来决定自己主键/外键(IdCard)。
简单的说
Oracle:主键是int/long/short建议使用sequence
主键是string使用uuid或者assigned
mysql:主键是int/long/short建议使用increment/assigned
主键是字符串使用uuid/assigned
sql server:主键是int/long/short建议使用identity/native/assigned
主键是字符串使用uuid/assigned
one-to-one是基于主键的使用foreign
时间: 2024-10-06 00:07:20