¿Dónde puedo encontrar un manual detallado sobre las convenciones de nomenclatura de PostgreSQL? (Nombres de tabla de casos comparada con camellos, secuencias, las claves principales, restricciones, índices, etc ...)Convenciones de nomenclatura de PostgreSQL
Respuesta
En cuanto a los nombres de las tablas, caso, etc., la convención prevalece es:
- palabras clave de SQL:
UPPER CASE
- nombres (identificadores):
lower_case_with_underscores
UPDATE my_table SET name = 5;
Esto no está escrito en piedra, pero el bit de 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 que sea coherente: o bien siempre cite los identificadores 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 se crean a partir de una secuencia (por lo general, con la macro serial
); sería conveniente ajustarse a esa denominación para esas secuencias si las creas a mano (tablename_colname_seq
).
Consulte también algunos comentarios here, here y (para SQL general) here, todos con varios enlaces relacionados.
¿Hay alguna convención sobre referenciar los tipos de datos en mayúsculas o minúsculas y las funciones de referencia? (es decir, 'regclass' o' REGCLASS' y 'to_timestamp (0)' o 'TO_TIMESTAMP (0)')? Supongo que consideramos los tipos y funciones como identificadores, y por lo tanto, minúsculas. – d11wtq
FWIW, la única idiosincrasia es que Pg se pliega en minúsculas, donde el estándar SQL dice que debe doblar a mayúsculas. Los DBMS que no se pliegan son extraños. –
Como nuevo usuario de Postgres, esto es bastante frustrante. Tener que elegir entre escribir citas todo el tiempo o usar una convención de nombres feos es una mierda. Es una mierda culo. – d512
No existe realmente un manual formal, porque no hay un solo estilo o estándar.
Mientras entienda the rules of identifier naming puede usar lo que quiera.
En la práctica, se me hace más fácil de usar lower_case_underscore_separated_identifiers
porque no es necesario "Double Quote"
en todas partes para preservar caso, espacios, etc.
Si quería nombrar las tablas y funciones "@MyAṕṕ! ""betty"" Shard$42"
serías libre de hacer eso, aunque sería doloroso escribir en todas partes.
Las principales cosas a entender son:
A menos entre comillas dobles, identificadores distinguen entre mayúsculas y plegarse a minúscula, por lo
MyTable
,MYTABLE
ymytable
son la misma cosa, pero"MYTABLE"
y"MyTable"
son diferente;A menos entre comillas dobles:
identificadores de SQL y palabras clave deben comenzar con una letra (a-z, pero también letras con signos diacríticos y caracteres no latinos) 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 utilizarlas como identificadores.
En la práctica, le recomiendo encarecidamente que no lo hace uso keywords como identificadores. Al menos evita las palabras reservadas. El hecho de que pueda nombrar una tabla "with"
no significa que deba hacerlo.
Gracias por vincular al documento en [rules of identifier naming] (http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS). Tuve dificultad para encontrar ese tema en particular. –
- 1. Convenciones de nomenclatura AJAX
- 2. Convenciones de nomenclatura de PHP?
- 3. convenciones de nomenclatura de ensamblaje
- 4. Convenciones de nomenclatura de Protobuf
- 5. ExtJS 4 Convenciones de nomenclatura
- 6. convenciones de nomenclatura para hilos?
- 7. Convenciones de nomenclatura de archivos de diseño?
- 8. convenciones de nomenclatura de nombres de nombres
- 9. Convenciones de nomenclatura de gemas de Ruby
- 10. Convenciones de nomenclatura de objetos WebSphere MQ
- 11. Java convenciones de nomenclatura de Excepción
- 12. Convenciones de nomenclatura para tipos de plantilla?
- 13. Convenciones de nomenclatura para activadores de DB
- 14. Java convenciones de nomenclatura de paquete
- 15. Convenciones de nomenclatura de Python en decoradores
- 16. Convenciones de nomenclatura de interfaces extraídas
- 17. Convenciones de nomenclatura de archivos jar
- 18. Convenciones de nomenclatura de servidores funcionales
- 19. Convenciones de nomenclatura de SQL Server
- 20. Convenciones de nomenclatura de proyectos y conjuntos
- 21. C++: listas de inicialización/convenciones de nomenclatura
- 22. C# Convenciones de nomenclatura para acrónimos
- 23. Convenciones de nomenclatura para pruebas .NET
- 24. Convenciones de nomenclatura variable en C++
- 25. WPF UI elemento convenciones de nomenclatura
- 26. ¿Debo mantener las convenciones de nomenclatura incorrectas?
- 27. Saxon Genitive en convenciones de nomenclatura?
- 28. convenciones de nomenclatura para elementos html
- 29. Convenciones de nomenclatura estándar para Objective-C
- 30. ¿Qué convenciones de nomenclatura usas en C#?
Bueno, si vamos a ir un poco más allá y buscar en la convención de nombres genéricos, recomiendo comprobar esta respuesta: http://stackoverflow.com/questions/4702728/tabletional-table-naming-convention/4703155#4703155 – vyegorov