¿Dónde puedo encontrar un manual detallado sobre las convenciones de nomenclatura de PostgreSQL? (nombres de tabla vs. caso de camello, secuencias, claves primarias, restricciones, índices, etc.)
¿Dónde puedo encontrar un manual detallado sobre las convenciones de nomenclatura de PostgreSQL? (nombres de tabla vs. caso de camello, secuencias, claves primarias, restricciones, índices, etc.)
Respuestas:
En cuanto a los nombres de tablas, casos, etc., la convención predominante es:
UPPER CASE
lower_case_with_underscores
UPDATE my_table SET name = 5;
Esto no está escrito en piedra, pero el bit sobre identificadores en minúsculas es muy recomendable, OMI. Postgresql trata los identificadores entre mayúsculas y minúsculas cuando no se citan (en realidad los dobla a minúsculas internamente) y entre mayúsculas y minúsculas cuando se citan; 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: ya sea entre comillas siempre o nunca (¡y esto incluye la creación del esquema!).
No conozco muchas más convenciones o guías de estilo. Las claves sustitutas normalmente están hechas de una secuencia (generalmente con la serial
macro), sería conveniente mantener ese nombre para esas secuencias si las crea a mano ( tablename_colname_seq
).
Vea también alguna discusión aquí , aquí y (para SQL general) aquí , todo con varios enlaces relacionados.
Nota: Postgresql 10 introdujo identity
columnas como un reemplazo compatible con SQL para serial .
Realmente no hay un manual formal, porque no hay un estilo único o estándar.
Siempre que comprenda las reglas de denominación de identificadores , puede usar lo que quiera.
En la práctica, me resulta más fácil de usar lower_case_underscore_separated_identifiers
porque no es necesario para "Double Quote"
ellos en todas partes preservar mayúsculas y minúsculas, espacios, etc.
Si quisieras nombrar tus tablas y funciones "@MyAṕṕ! ""betty"" Shard$42"
, serías libre de hacerlo, aunque sería difícil escribir en todas partes.
Los principales puntos a entender son:
A no ser citado doble, identificadores distinguen entre mayúsculas y plegada a minúsculas, por lo que MyTable
, MYTABLE
y mytable
son la misma cosa, pero "MYTABLE"
y "MyTable"
son diferentes;
A menos que sea doblemente citado:
Los identificadores 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 posteriores en un identificador o palabra clave pueden ser letras, guiones bajos, dígitos (0-9) o signos de dólar ($).
Debe comillas dobles las palabras clave si desea utilizarlas como identificadores.
En la práctica, le recomiendo que no utilice palabras clave como identificadores. Al menos evite las palabras reservadas. El hecho de que pueda nombrar una tabla "with"
no significa que deba hacerlo.
lower_case_underscore_separated_identifiers
" ... recientemente, escuché esto descrito como "caso de serpiente"