Соглашения об именах PostgreSQL - PullRequest
158 голосов
/ 21 мая 2010

Где найти подробное руководство по соглашениям об именах PostgreSQL? (имена таблиц и регистр верблюдов, последовательности, первичные ключи, ограничения, индексы и т. д.) *

Ответы [ 2 ]

200 голосов
/ 21 мая 2010

В отношении имен таблиц, регистра и т. Д. Распространенное соглашение:

  • Ключевые слова SQL: UPPER CASE
  • имена (идентификаторы): lower_case_with_underscores

Например :

UPDATE my_table SET name = 5;

Это не написано на камне, но бит о идентификаторах в нижнем регистре настоятельно рекомендуется, ИМО. Postgresql обрабатывает идентификаторы без учета регистра, когда они не заключены в кавычки (он фактически сворачивает их в нижний регистр внутри), и с учетом регистра при цитировании; многие люди не знают об этой идиосинкразии. Используя всегда строчные буквы, вы в безопасности. В любом случае, допустимо использовать camelCase или PascalCase (или UPPER_CASE), если вы последовательны: либо всегда указывайте идентификаторы, либо никогда (и это включает создание схемы!).

Мне не известны многие другие соглашения или руководства по стилю. Суррогатные ключи обычно создаются из последовательности (обычно с макросом serial), было бы удобно придерживаться этого имени для этих последовательностей, если вы создаете их вручную (tablename_colname_seq).

См. Также некоторые обсуждения здесь , здесь и (для общего SQL) здесь , все с несколькими связанными ссылками.

22 голосов
/ 16 сентября 2014

На самом деле нет формального руководства, потому что нет единого стиля или стандарта.

Пока вы понимаете правила именования идентификаторов , вы можете использовать все, что захотите.

На практике мне проще использовать lower_case_underscore_separated_identifiers, потому что нет необходимости "Double Quote" использовать их повсеместно для сохранения регистра, пробелов и т. Д.

Если бы вы хотели назвать свои таблицы и функции "@MyAṕṕ! ""betty"" Shard$42", вы бы могли это сделать, хотя печатать везде было бы больно.

Основные вещи, которые нужно понять:

  • Если не заключить в двойные кавычки, идентификаторы переносятся в нижний регистр, поэтому MyTable, MYTABLE и mytable - это одно и то же, но "MYTABLE" и "MyTable" различны;

  • Если не указано в двойных кавычках:

    Идентификаторы SQL и ключевые слова должны начинаться с буквы (a-z, но также и букв с диакритическими знаками и нелатинскими буквами) или подчеркивания (_). Последующие символы в идентификаторе или ключевом слове могут быть буквами, подчеркиванием, цифрами (0-9) или знаками доллара ($).

  • Вы должны заключить в кавычки ключевые слова, если хотите использовать их в качестве идентификаторов.

На практике я настоятельно рекомендую вам не использовать ключевые слова в качестве идентификаторов. По крайней мере, избегайте зарезервированных слов. То, что вы можете назвать таблицу "with", не означает, что вы должны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...