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

SQL视图列重命名是否有公开通用的编码风格规范?

SQL视图关联表列名冲突重命名规范

你当前使用的表名_原列名的命名方式是目前业内接受度最高的通用规范,以下是完整的落地规则和不同场景的调整建议:

一、核心通用规则

  • 语义无歧义的列优先保留原列名:如果列名在所有关联表中唯一,无重名冲突,无需额外加前缀,减少命名冗余
  • 冲突列统一使用来源表名_原列名格式命名:该格式的优势是可直接追溯列的来源表,后续排查数据问题无需反复查阅视图定义,你示例中的libraries_id、library_groups_name都符合该规范
  • 禁止用表别名作为前缀:禁止使用l_id、lg_name这类别名前缀命名,除非团队有全成员统一共识的别名规范,否则其他视图使用者无法直接对应到来源表
  • 业务语义优先于固定规则:如果某列在业务侧有通用的统一叫法,优先使用业务命名,比如libraries.name业务侧统一叫「馆藏名称」,可直接命名为collection_name,无需强制加表前缀
  • 命名规则全视图统一:不要出现部分冲突列加前缀、部分冲突列不加的情况,同类型列的命名规则需保持一致

二、不同场景的优化建议

  • 对外输出的公共视图:建议所有列都加来源表前缀,无论是否有重名冲突,可完全避免后续来源表新增同名字段导致的视图列冲突问题,同时降低使用方的理解成本
  • 内部使用的临时视图:可简化规则,仅给存在冲突的列加前缀,减少冗余的命名长度
  • 核心标识列可简化:如果某张表的主键是整个视图的唯一标识,比如libraries.id是libraries_metadata视图的唯一主键,可直接命名为id,无需加前缀,只需在视图注释中标注清楚列来源即可

三、禁止使用的命名方式

  • 禁止使用无意义的简写别名,比如col1、a1、lid这类无法直接理解语义的命名
  • 禁止使用和SQL关键字重名的别名,比如order、comment、type这类高频关键字,避免执行报错或解析异常
  • 禁止混用命名风格,所有列名统一和表的命名规范保持一致,通常为小写蛇形命名

示例代码

公共视图版本(完全无歧义)

CREATE OR REPLACE VIEW libraries_metadata AS
SELECT
    l.id AS libraries_id
    , l.description AS libraries_description
    , l.name AS libraries_name
    , lg.id AS library_groups_id
    , lg.description AS library_groups_description
    , lg.name AS library_groups_name
    , l.create_time AS libraries_create_time
    , lg.update_time AS library_groups_update_time
FROM
    libraries l
    INNER JOIN library_groups lg ON
    l.library_group_id = lg.id;

内部临时视图版本(精简命名)

CREATE OR REPLACE VIEW libraries_metadata AS
SELECT
    l.id AS libraries_id
    , l.description AS libraries_description
    , l.name AS libraries_name
    , lg.id AS library_group_id
    , lg.description AS library_groups_description
    , lg.name AS library_groups_name
FROM
    libraries l
    INNER JOIN library_groups lg ON
    l.library_group_id = lg.id;

内容的提问来源于stack exchange,提问作者Timur Shtatland

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:54:03