网站(或一般业务系统)的“主键(Primary Key)”设计,其实没有唯一答案,但有一些成熟、通用、可落地的设计原则。下面从常见方案、适用场景、避坑建议三个层面来讲。
id BIGINT AUTO_INCREMENT PRIMARY KEY
优点
缺点
适用场景
id CHAR(36) PRIMARY KEY
优点
缺点
适用场景
64位整数:
符号位 | 时间戳 | 机器ID | 序列号
优点
缺点
适用场景
PRIMARY KEY (order_no)
优点
缺点
建议
主键:雪花 ID(BIGINT)
业务号:order_no / user_code(唯一索引)
示例:
id BIGINT PRIMARY KEY
user_code VARCHAR(32) UNIQUE
| 模块 | 推荐主键 |
|---|---|
| 用户表 | 雪花 ID |
| 订单表 | 雪花 ID + 订单号 |
| 日志表 | 自增 / UUID |
| 配置表 | 短字符串 |
| 分布式表 | 雪花 ID |
❌ 用手机号、邮箱当主键
❌ 用 UUID 当高频表主键
❌ 主键频繁变更
❌ 主键参与业务逻辑判断
网站主键设计原则:无意义、稳定、唯一、可扩展
如果你愿意,可以告诉我:
我可以直接帮你给出具体表结构设计。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。