You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

若表中外键已设唯一性约束,是否可将其同时设置为表主键?

结论:完全合理,这是1:1关联表场景下的标准最佳实践

核心原因如下:

  • 匹配业务逻辑:ObjectStatus 表和 Object 表是严格1:1映射,没有其他可以唯一标识 ObjectStatus 记录的字段,用关联外键 ObjectId 当主键,完全贴合业务规则,不需要额外新增无意义的自增主键做冗余。
  • 性能更优:主键天生自带非空、唯一约束和索引,既覆盖了你原本给外键加的唯一性约束要求,也不用额外给外键字段建索引,关联查询、单表查询都直接走主键索引,性能更高,数据插入时也少了一个约束校验的开销。
  • 可维护性更强:表结构更简洁清晰,其他开发人员一眼就能识别两张表的1:1关联关系,也不会出现冗余主键和外键对应混乱的问题,数据一致性天然有保障。

如果后续业务变更需要支持单条Object记录对应多条ObjectStatus记录,再调整主键策略即可,当前场景下没有任何弊端。


内容的提问来源于stack exchange,提问作者Mr. Boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 14:24:01