是否有任何已发布的编码风格指南用于重命名 SQL 视图中的列?

Posted

技术标签:

【中文标题】是否有任何已发布的编码风格指南用于重命名 SQL 视图中的列?【英文标题】:Are there any published coding style guidelines for renaming columns in views in SQL? 【发布时间】:2021-10-28 19:21:09 【问题描述】:

我正在修改现有代码以创建视图,并且正在寻找一组普遍接受的样式指南,了解如何在组件表列名称冲突时重命名视图中的结果列。

也许你自己写了一个。请分享您的指南。

CREATE OR REPLACE VIEW libraries_metadata AS
SELECT
    l.id AS libraries_id
    , l.description AS libraries_description
    , l.name AS libraries_name
    , 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
    ;

注意:我无法在此处快速找到任何指南:Are there any published coding style guidelines for SQL?

【问题讨论】:

不幸的是,这是一个基于意见的问题,应该已经关闭。 【参考方案1】:

我看到最常使用的风格是<em><strong>tablename</strong></em>_<em><strong>columnname</strong></em>,但这完全取决于品味和仲裁,我从未见过有人为此发布风格指南。例如,如果视图名为customer_details,表为customer_data,列为id,很多人可能会选择更少冗余和更短的data_id

【讨论】:

谢谢!只是为了确认一下,表 libraries 中的 libraries.name 应根据此约定重命名为 libraries_namenot library_name。这是正确的吗? 正如我所说,没有约定。使用你最喜欢的任何东西 @TimurShtatland,我以复数形式命名我的表,即libraries,而不是library,因为该表包含有关许多库的信息。当我查看列时,我正在查看特定库的属性,因此列名是单数形式,即library_name。另外,我认为它更接近自然英语。同样,正如您在问题library_group_id,不是libraries_group_id,不是library_groups_id。最后,一致性更重要,所以选择一些风格并在任何地方都遵循它。但是,如果你选择一种尴尬的风格,人们往往不会坚持下去。【参考方案2】:

确实没有这方面的指南,但我会选择这样的东西

CREATE OR REPLACE VIEW libraries_metadata AS
SELECT
    l.id AS lib_id
    , l.name AS lib_name 
    , l.description AS lib_desc
    , lg.name AS lib_group_name
    , lg.description AS lib_group_desc
FROM
    libraries l
    INNER JOIN library_groups lg ON
    l.library_group_id = lg.id
    ;

我个人对这种非规范化表和视图的偏好是:

    避免列名中的空格

    保持小写并使用下划线 区别而不是UsingDifferentCases

    避免保留(可能保留)关键字。对于,例如我用了 lib_name 而不是上面的name

    何时/如果合适使用较短的表/列别名创建列名,以平衡打字速度和易读性

【讨论】:

由于现有的命名约定,请假设使用description。在这种情况下,使用desc 而不是description 将违背当前代码中(显然存在的)命名约定——可能不如它本来的最佳。但谢谢你的想法!【参考方案3】:

对于现有数据库,在添加一个新表或视图时,使用与数据库中其他对象相同的命名约定。

如果 CustomerId 在其他表中使用并且 CustomerId 在视图中,请尽可能在视图中使用 CustomerId。

【讨论】:

如果列名在表之间发生冲突怎么办?例如,两个表,每个表都有名为 idnamedescription 的列.具体来说,请参阅原始帖子以获取实际示例。这是问题的本质。您能否在原始帖子中描述的示例中描述命名约定?谢谢。

以上是关于是否有任何已发布的编码风格指南用于重命名 SQL 视图中的列?的主要内容,如果未能解决你的问题,请参考以下文章

来自 Google 的 R 语言编码风格指南

git gui app 显示检测到的重命名

在哪里可以找到版本控制分支命名指南?

是否有任何特定原因不能将函数调用用于C中的变量初始值设定项

如何在Linux中对文件进行别名或重命名?[已关闭]

JavaScript 的命名准则 [关闭]