官方 PostgreSQL 大小写约定

Ada*_*tan 14 postgresql naming-convention

是否有关于数据库、表和字段名称大小写的官方 PostreSQL 约定?

在官方网站上的例子表明一个小写字母和_单词的分离,我不知道这个策略是否正式。

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
);
Run Code Online (Sandbox Code Playgroud)

jco*_*and 21

我将基本上反映 Verace 的评论并说明这一点,使其成为半官方的:

没有一种最佳实践可以涵盖所有情况。以下内容做出以下假设(如果您还没有这样做,该怎么办):

  • 你已经和你的团队讨论过这个问题(独自工作的人通常只需要下定决心)
  • 您的团队中已经没有正式的 SQL 样式定义(否则您不会问我们)
  • 任何代码都没有形式化的样式定义(遵循为其他语言已经建立的相同基本约定并形式化样式)

所以剩下的部分有点自以为是,但基于经验

  1. 说到表名
    1. 您应该使用单数实体名称(这使文档更容易)
    2. 你应该在这里使用 Pascal Case
  2. 当涉及到字段名称时
    1. 在您的字段名称上使用驼峰式命名法
    2. 使用简短的单数名称,除非定义作为复数肯定有意义(它几乎从来没有)
  3. 当涉及到您自己的函数或存储过程名称时
    1. 使用 underscore_separation
    2. 使用字段命名进行参数化
  4. 当涉及到内置的数据库函数或语言名称(例如 SELECT)
    1. 除非要求以某种方式大写,否则请使用全部大写
    2. 了解您的语言的 API 以了解什么是合理的或需要的
  5. 说到间距
    1. 很多人对关键字使用列对齐,对非关键字使用缩进
    2. 当字段在每一行上分开时,很多人在行的开头使用逗号(这使得从选择列表中注释掉特定字段更容易)
    3. 永远不要使用空格作为事物名称的一部分,即使是返回值标题也不行。
  6. 说到标点符号
    1. 括号 - 使用它们。他们是免费的。我承诺。
    2. 分号 - 使用它们。他们不会打垮你。他们强迫你思考你的代码。而且他们的卫生很好。
    3. 回车 - 再一次,它们是免费的 ;-) 并使您的代码可读。

您还应该认识到,虽然我试图帮助您应用通用样式指南,但 Postgres 社区通常不使用驼峰式大小写或 PascalCase,而是使用下划线分隔。在真正重要的一点是要确保你建立并使用特定的风格,到处是一致的

  • 好吧,PostgreSQL 中的camelCase 和PascalCase 有点痛苦。如果你_真的_想要这样的名字,你必须引用这些,否则系统会默默地将它们小写(我几乎写了 decapitalize,无论它可能引起什么联想)。 (4认同)
  • +1 表示“真正重要的一点是确保您在任何地方建立和使用特定样式以保持一致。” 一致性是关键。没有它,你必须考虑你永远不必考虑的事情。 (3认同)

Vér*_*ace 5

快速谷歌将显示许多指示最佳实践的网站。我只想说两件事 -永远不要使用空格“我的表名称”(由于不同的转义机制,移植变得不可能;对于任何非字母数字字符也是如此)。对于这些类型的机制,您通常还必须尊重大小写。英语(或您自己的)语言中有足够的字母和单词,并且标识符长度足够长(我不知道有任何系统的identifier_length < 32,PostgreSQL是64)。永远不要使用 SQL 关键字(根据 RDBMS 的不同而不同),它会做同样的事情。

类似的陈述

SELECT "Field" FROM "Table";
Run Code Online (Sandbox Code Playgroud)

可以有效!绝对关键的是要有一个清晰且相对简单的约定,然后坚持下去。正如您会发现的那样,人们有不同的观点 - 阅读该主题并选择您“感觉正确”的内容。请参阅这些站点12345,...(还有更多)。