“作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。常见的可作为id字段的类型有:
id
自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键;
全局唯一GUID类型:使用一种全局唯一的字符串作为主键,类似8f55d96b-8acc-4636-8cb8-76bf8abc2f57。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。
8f55d96b-8acc-4636-8cb8-76bf8abc2f57
对于大部分应用来说,通常自增类型的主键就能满足需求。我们在students表中定义的主键也是BIGINT NOT NULL AUTO_INCREMENT类型。” ——大佬们,小白提问: 1、怎么理解“业务无关的字段”? 2、自增整数类型与全局唯一GUID类型怎么理解,不太明白。
students
BIGINT NOT NULL AUTO_INCREMENT
1、可以理解为序号
业务相关是指看似唯一但绝不能用作主键的:身份证号,Email,学号,工号,护照号……
Sign in to make a reply
安静的抿甜
“作为主键最好是完全业务无关的字段,我们一般把这个字段命名为
id
。常见的可作为id
字段的类型有:自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键;
全局唯一GUID类型:使用一种全局唯一的字符串作为主键,类似
8f55d96b-8acc-4636-8cb8-76bf8abc2f57
。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。对于大部分应用来说,通常自增类型的主键就能满足需求。我们在
students
表中定义的主键也是BIGINT NOT NULL AUTO_INCREMENT
类型。”——大佬们,小白提问:
1、怎么理解“业务无关的字段”?
2、自增整数类型与全局唯一GUID类型怎么理解,不太明白。