Къде мога да намеря подробно ръководство относно конвенциите за именуване на PostgreSQL? (имена на таблици срещу камилски регистър, последователности, първични ключове, ограничения, индекси и т.н...)
Конвенции за именуване на PostgreSQL
Отговори (2)
По отношение на имена на таблици, регистър и т.н., преобладаващата конвенция е:
- SQL ключови думи:
UPPER CASE
- идентификатори (имена на бази данни, таблици, колони и т.н.):
lower_case_with_underscores
UPDATE my_table SET name = 5;
Това не е написано на камък, но малкото относно идентификаторите с малки букви е силно препоръчително, IMO. Postgresql третира идентификаторите без значение за главни и малки букви, когато не са цитирани (всъщност вътрешно ги преобразува в малки букви) и малки и малки букви, когато са цитирани; много хора не са наясно с тази идиосинкразия. Използвайки винаги малки букви, вие сте в безопасност. Както и да е, приемливо е да използвате camelCase
или PascalCase
(или UPPER_CASE
), стига да сте последователни: или цитирайте идентификаторите винаги или никога (и това включва създаването на схема!).
Не знам за много други конвенции или ръководства за стил. Сурогатните ключове обикновено се правят от последователност (обикновено с serial
макрос), би било удобно да се придържате към това именуване за тези последователности, ако ги създавате на ръка (tablename_colname_seq
).
Вижте също някои дискусии тук, тук и (за общ SQL) тук, всички с няколко свързани връзки.
Забележка: Postgresql 10 въведе identity
колони като SQL-съвместима замяна на сериен.
regclass
или REGCLASS
и to_timestamp(0)
или TO_TIMESTAMP(0)
)? Предполагам, че разглеждаме типовете и функциите като идентификатори и следователно малки букви?
- person d11wtq; 27.08.2012
Всъщност няма официално ръководство, защото няма единен стил или стандарт.
Стига да разбирате правилата за именуване на идентификатор можете да използвате каквото искате.
На практика смятам, че е по-лесно да използвам lower_case_underscore_separated_identifiers
, защото не е необходимо да ги "Double Quote"
навсякъде, за да запазя регистър, интервали и т.н.
Ако искате да наименувате вашите таблици и функции "@MyAṕṕ! ""betty"" Shard$42"
, ще бъдете свободни да го направите, въпреки че ще ви е мъчно да пишете навсякъде.
Основните неща, които трябва да разберете, са:
Освен ако не са поставени в двойни кавички, идентификаторите са сгънати от малки до малки, така че
MyTable
,MYTABLE
иmytable
са едно и също нещо, но"MYTABLE"
и"MyTable"
са различни;- #P7#
#P8#
Трябва да поставите ключовите думи в двойни кавички, ако искате да ги използвате като идентификатори.
На практика силно препоръчвам да не използвате ключови думи като идентификатори. Поне избягвайте запазените думи. Това, че можете да кръстите таблица "with"
, не означава, че трябва.
lower_case_underscore_separated_identifiers
... наскоро чух, че това е описано като змийски случай
- person bvj; 07.03.2020