基础概念: 在数据库设计中,主键(Primary Key)是用于唯一标识表中每一条记录的一个或一组字段。自然ID(Natural ID)是指业务上已经存在的、具有唯一性的标识符,如身份证号、手机号、员工编号等。
相关优势:
类型:
应用场景:
可能遇到的问题及原因:
示例代码: 假设我们有一个用户表,使用手机号作为自然ID作为主键:
CREATE TABLE users (
phone_number VARCHAR(15) PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
如果担心手机号变更带来的问题,可以考虑使用代理键:
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
phone_number VARCHAR(15) UNIQUE NOT NULL,
name VARCHAR(100),
email VARCHAR(100)
);
在这种情况下,user_id
是一个自增的代理键,而 phone_number
作为唯一索引保留其业务意义。
通过这种方式,既保证了数据的唯一性和业务意义,又避免了直接使用自然ID可能带来的问题。
领取专属 10元无门槛券
手把手带您无忧上云