1. 主键命名,id、table_id、pk_table 的取舍?
主键命名有哪些方案?id、table_id、pk_table 的取舍是什么?
- 主键命名约定
- 一致性
- 可读性
主键命名常用方案:①id:每张表都叫 id,简单统一,但 JOIN 时需别名(如 o.id、c.id),在多表查询中易混淆;②table_id(如 order_id):包含表名,语义清晰,JOIN 时无需猜测,但命名冗长;③pk_table:显式主键约束命名(如 pk_orders),用于约束名而非列名。推荐:列名用 id 或 表名_id 保持统一,约束名用 pk_表名。关键在于全库一致性、可读性与 JOIN 便利。业界常统一用 id + 表名_id 外键。
主键命名需全库统一,避免歧义。id 简洁,表名_id 语义清晰,约束名 pk_表名 用于约束管理。
CREATE TABLE orders (
order_id BIGINT, -- 表名_id
CONSTRAINT pk_orders PRIMARY KEY (order_id) -- 约束名
);