Где я могу найти подробное руководство по соглашениям об именах PostgreSQL? (имена таблиц и регистр верблюдов, последовательности, первичные ключи, ограничения, индексы и т. д.)
Где я могу найти подробное руководство по соглашениям об именах PostgreSQL? (имена таблиц и регистр верблюдов, последовательности, первичные ключи, ограничения, индексы и т. д.)
Ответы:
Что касается имен таблиц, регистра и т. Д., Распространенное соглашение:
UPPER CASElower_case_with_underscoresНапример :
UPDATE my_table SET name = 5;
Это не написано в камне, но бит об идентификаторах в нижнем регистре настоятельно рекомендуется, IMO. Postgresql обрабатывает идентификаторы без учета регистра, когда они не заключены в кавычки (он фактически сворачивает их в нижний регистр внутри), и с учетом регистра при цитировании; многие люди не знают об этой идиосинкразии. Используя всегда строчные буквы, вы в безопасности. В любом случае, допустимо использовать camelCaseили PascalCase(или UPPER_CASE), если вы последовательны: либо всегда указывайте идентификаторы, либо никогда (и это включает создание схемы!).
Я не знаю о многих других соглашениях или руководствах по стилю. Суррогатные ключи обычно создаются из последовательности (обычно с serialмакросом), было бы удобно придерживаться этого имени для этих последовательностей, если вы создаете их вручную ( tablename_colname_seq).
Смотрите также некоторые обсуждения здесь , здесь и (для общего SQL) здесь , все с несколькими связанными ссылками.
Примечание: Postgresql 10 представил identity столбцы как замену последовательного кода на SQL .
На самом деле нет формального руководства, потому что нет единого стиля или стандарта.
Пока вы понимаете правила именования идентификаторов, вы можете использовать все, что захотите.
На практике мне легче пользоваться, lower_case_underscore_separated_identifiersпотому что им не нужно "Double Quote"везде сохранять кейс, пробелы и т. Д.
Если бы вы хотели назвать свои таблицы и функции, "@MyAṕṕ! ""betty"" Shard$42"вы бы могли это сделать, хотя печатать везде было бы больно.
Основные вещи для понимания:
Если не заключить в двойные кавычки, идентификаторы свернуты в нижний регистр, то есть MyTable, MYTABLEи mytableвсе это одно и то же, но "MYTABLE"и "MyTable"разные;
Если не указано в двойных кавычках:
Идентификаторы SQL и ключевые слова должны начинаться с буквы (az, но также и букв с диакритическими знаками и нелатинскими буквами) или подчеркивания (_). Последующими символами в идентификаторе или ключевом слове могут быть буквы, подчеркивания, цифры (0-9) или знаки доллара ($).
Вы должны использовать двойные кавычки, если хотите использовать их в качестве идентификаторов.
На практике я настоятельно рекомендую не использовать ключевые слова в качестве идентификаторов. По крайней мере, избегайте зарезервированных слов. То, что вы можете назвать таблицу "with", не означает, что вы должны.
lower_case_underscore_separated_identifiers» ... недавно я услышал, что это описывается как «случай змеи»