Convenciones de nomenclatura de PostgreSQL

¿Dónde puedo encontrar un manual detallado sobre las convenciones de nombres de PostgreSQL? (nombres de tablas vs. camel case, secuencias, claves principales, restricciones, índices, etc.)

En cuanto a nombres de tablas, casos, etc., la convención prevalente es:

  • Palabras clave de SQL: UPPER CASE
  • nombres (identificadores): lower_case_with_underscores

Por ejemplo :

 UPDATE my_table SET name = 5; 

Esto no está escrito en piedra, pero el bit sobre identificadores en minúsculas es muy recomendable, IMO. Postgresql trata los identificadores de forma insensible cuando no están citados (en realidad los dobla a minúsculas internamente), y distingue entre mayúsculas y minúsculas cuando se lo cita; muchas personas no son conscientes de esta idiosincrasia. Usando siempre minúsculas estás a salvo. De todos modos, es aceptable usar camelCase o PascalCase (o UPPER_CASE ), siempre y cuando sea coherente: o bien los identificadores de cotización siempre o nunca (¡y esto incluye la creación del esquema!).

No estoy al tanto de muchas más convenciones o guías de estilo. Las claves sustitutas normalmente se crean a partir de una secuencia (generalmente con la macro en serial ), sería conveniente apegarse a esa denominación para esas secuencias si las creas a mano ( tablename_colname_seq ).

Vea también algunas discusiones aquí , aquí y (para SQL general) aquí , todas con varios enlaces relacionados.

Realmente no hay un manual formal, porque no hay un solo estilo o estándar.

Siempre que comprenda las reglas de nomenclatura de identificadores , puede usar lo que quiera.

En la práctica, me resulta más fácil usar lower_case_underscore_separated_identifiers porque no es necesario "Double Quote" todos lados para preservar mayúsculas y minúsculas, espacios, etc.

Si quisiera nombrar sus tablas y funciones "@MyAṕṕ! ""betty"" Shard$42" , sería libre de hacerlo, aunque sería doloroso escribir en todas partes.

Las principales cosas para entender son:

  • A menos que se MYTABLE mytable , los identificadores se doblan en mayúsculas a minúsculas, por lo que MyTable , MYTABLE y mytable son todos lo mismo, pero "MYTABLE" y "MyTable" son diferentes;

  • A menos que se cite dos veces:

    Los identificadores de SQL y las palabras clave deben comenzar con una letra (az, pero también letras con signos diacríticos y letras no latinas) o un guión bajo (_). Los caracteres subsiguientes en un identificador o palabra clave pueden ser letras, guiones bajos, dígitos (0-9) o signos de dólar ($).

  • Debe utilizar palabras clave de doble cita si desea usarlas como identificadores.

En la práctica, recomiendo encarecidamente que no utilice palabras clave como identificadores. Al menos evita las palabras reservadas. El hecho de que pueda nombrar una tabla "with" no significa que deba hacerlo.