¿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.)
193
¿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
Por ejemplo :
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
oPascalCase
(oUPPER_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 .fuente
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
ymytable
son la misma cosa, pero"MYTABLE"
y"MyTable"
son diferentes;A menos que sea doblemente citado:
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.fuente
lower_case_underscore_separated_identifiers
" ... recientemente, escuché esto descrito como "caso de serpiente"