Surrogate key(代理键)是数据库设计中的一个术语,指由系统自动生成的、没有实际业务含义的唯一标识符,用于替代自然键来标识数据库表中的每一行记录。常见形式包括自增整数、UUID 等。
/ˈsʌr.ə.ɡət kiː/
The database uses a surrogate key to uniquely identify each customer record.
该数据库使用代理键来唯一标识每条客户记录。
When the natural key is composed of multiple columns and is prone to change, introducing a surrogate key simplifies joins and improves query performance.
当自然键由多列组成且容易发生变化时,引入代理键可以简化表连接并提高查询性能。
surrogate 源自拉丁语 surrogatus,是动词 surrogare 的过去分词,意为"代替、替代",由前缀 sub-(在……之下)和 rogare(请求、提议)组成。key 源自古英语 cǣg,意为"钥匙",后引申为"关键要素、标识符"。合在一起,surrogate key 字面意思是"替代性的标识符",即用一个系统生成的值来代替原本具有业务含义的自然键。该术语在关系型数据库理论兴起的 20 世纪 70–80 年代开始广泛使用。