Офіційні конвенції про капіталізацію PostgreSQL [закрито]


14

Чи існує офіційна конвенція PostreSQL щодо капіталізації в назвах БД, Таблиць і полів?

У прикладах на офіційному сайті припускають малу і _слово поділу, і мені цікаво , є чи офіційна ця політика.

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
);

1
Перегляньте також цю частину документації, що стосується ідентифікаторів
ypercubeᵀᴹ

Відповіді:


20

Я в основному дзеркально зауважую коментарі Верації і констатую це, роблячи це офіційним:

Немає жодної найкращої практики, яка б охоплювала кожну обставину. Далі випливає наступне припущення (і що робити, якщо ви цього не зробили):

  • Ви вже обговорювали це зі своєю командою (люди, які працюють самі, часто просто мають вирішити)
  • У вашій команді вже немає формалізованого визначення стилю для SQL (інакше ви не запитуєте нас)
  • Не існує формалізованого визначення стилю для будь-якого коду (Дотримуйтесь тих самих основних умов, які вже були встановлені для інших мов, і формалізуйте стиль)

Тож решта цього дещо впевнено, але заснована на досвіді

  1. Якщо мова йде про назви таблиць
    1. Вам слід вказувати особливі назви юридичних осіб (це полегшує документацію)
    2. Тут слід скористатися Паскальним кейсом
  2. Якщо мова йде про назви полів
    1. Використовуйте camelCase у своїх назвах полів
    2. Використовуйте короткі однинні імена, якщо тільки визначення не має сенсу як множини (це майже ніколи)
  3. Якщо мова йде про вашу власну функцію або збережені назви процедур
    1. Використовуйте підкреслення_сепарації
    2. Використовуйте найменування поля для параметризації
  4. Якщо мова йде про вбудовані функції баз даних або назви мов (наприклад, SELECT)
    1. Якщо немає вимоги, щоб вона була використана з великої літери, використовуйте ВСІ КАПС
    2. Знайте API для своєї мови, щоб зрозуміти, що розумно чи потрібно
  5. Якщо мова йде про інтервали
    1. Багато людей використовують вирівнювання стовпців для ключових слів і відступ для речей, які не є ключовими словами
    2. Дуже багато людей використовують коми на початку рядка, коли поля розділені в кожному рядку (Це полегшує коментування певного поля зі списку вибору)
    3. Ніколи не використовуйте пробіли як частину назв речей, навіть не для заголовків зворотного значення.
  6. Коли мова йде про розділові знаки
    1. Дужки - ВИКОРИСТОВУЙТЕ ЇХ. Вони БЕЗКОШТОВНІ. Я обіцяю.
    2. Крапки з комою - ВИКОРИСТОВУЙТЕ ЇХ. Вони не збираються тебе ламати. Вони змушують вас придумати свій код. І вони дотримуються хорошої гігієни.
    3. Повернення перевезення - ще раз вони безкоштовні ;-) І зробіть ваш код читабельним.

Ви також повинні визнати, що, хоча я намагаюся допомогти вам застосувати загальний посібник зі стилів, спільнота для Postgres зазвичай не використовує camelCase або PascalCase, а натомість використовує underscore_separation. Дійсно важливий біт є забезпечити , щоб ви встановити і використовувати стиль конкретної всюди бути послідовним .


3
+1 для "Дійсно важливий біт - це забезпечити встановлення та використання певного стилю скрізь, щоб бути послідовним". Послідовність є ключовим. Без цього ви повинні думати про речі, про які ніколи не повинні думати.
Макс Вернон

4
Ну, camelCase і PascalCase в PostgreSQL трохи боляче. Ви повинні цитувати їх, якщо ви дійсно хочете мати такі імена, інакше система мовчки їх реєструє мало (я майже написав декапіталізацію, які б асоціації це не викликало).
dezso

Що з іменами бази даних? Повинен чи я використовувати database_name, database-name, DatabaseName, databaseNameі т.д.?
ma11hew28

1
Це відповідь насправді для PostgreSQL? Якщо ви даєте пораду використовувати PascalCase для імен таблиць у відповіді, що стосується PG, я думаю, ви повинні згадати (a) як боротися з тим, що більшість прикладів використовують малі ключові слова та (b) чи цитувати назви таблиць чи дозволити PG складіть їх в малі регістри.
AndreKR

@AndreKR ось у чому річ: я очікую, що розробники програмного забезпечення будуть дорослими, знатимуть, як читати документацію та обговорювати зі своєю командою, як писати код послідовно. Ця відповідь - вікі спільноти, тобто будь-хто бажає редагувати та вдосконалювати її. Я не можу сказати точно "це єдиний шлях", і те, що деякі люди наводять приклади в малі регістри, не означає, що це єдиний шлях у житті. Ви повинні знайти свій власний шлях, який був дух цієї відповіді. Будь ласка, відредагуйте відповідь цієї спільноти, щоб покращити її. Спасибі!
jcolebrand

4

Швидкий Google виявить багато сайтів, які вказують на найкращі практики. Я б сказав лише дві речі - НІКОЛИ не використовуйте пробілів "Ім'я моєї таблиці" (перенесення стає неможливим через різні механізми пропуску; те ж саме стосується будь-яких буквено-цифрових символів). З такими різними механізмами, як правило, ви також повинні поважати справи. В англійській (або вашій власній) мові достатньо букв і слів, а довжина ідентифікатора досить довга (я не знаю жодної системи, яка має ідентифікатор_ довжина <32, PostgreSQL - 64). І ніколи не використовуйте ключові слова SQL (які залежать від RDBMS), які будуть робити те саме.

Плаценти, як

SELECT "Field" FROM "Table";

може бути дійсним! Абсолютно критична річ - мати чітку і відносно просту конвенцію, а потім дотримуватися її. Як ви дізнаєтесь, люди мають різні думки - читайте навколо теми і вибирайте те, що «вам належить». Перегляньте ці сайти 1 , 2 , 3 , 4 , 5 , ... (є ще багато).


Дякую, я натрапив на багатьох у власних пошуках. Мені хотілося дізнатись, чи є офіційний стиль керівництва.
Адам Матан

З обох сторін дискусії (singular_table_name / plural_table_name) є багато практиків, думки про які я поважаю в інших сферах. Я сам "єдиний" чоловік - якщо ви працюєте на атомній електростанції, у вас може бути таблиця під назвою catastrophic_meltdown, в якій ви ніколи не хочете бачити будь-які записи! Дайте вашим основним ключам суфікс _id і позначайте їх як Parent_Table_Name_FK у дочірніх таблицях - ось що я роблю. Після цього це легко-горох! Що стосується cap / no-caps, то в моїх SQL-скриптах є верблюд (без котирування), мої заяви можуть чи ні.
Vérace
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.