Size: a a a

pgsql – PostgreSQL

2021 June 26

4

4g in pgsql – PostgreSQL
+
источник

R

Radist in pgsql – PostgreSQL
Там можно целую кучу замечаний к этому стайлгайду выдвинуть. Любой codestyle - это кристаллизация опыта и привычек тех, кто его составляет, а значит, примерно наполовину это вкусовщина. Вот примеры замечаний к этому гайду:
- запрет префиксов подходит для маленьких схем данных, но когда в проекте 50+ таблиц (и в некоторых из них по 20+ полей), с префиксами становится гораздо проще пользоваться автодополнением: достаточно запомнить небольшой набор префиксов, а не буквы, с которых начинается название всех таблиц проекта. При этом, рекомендуется использовать суффиксы. На мой взгляд, здесь ноги растут от рекомендации в имени файла в начало выносить самую значительную часть. Рекомендация с тех времён, когда экраны были маленькими и часть имени могла не влезть.
- использование стандартных функций вместо вендороспецифичных. При переводе сложного проекта на другую СУБД, названия функций будет минорной проблемой. А вот зацикливание на стандарте не всегда на пользу: вы хотите писать sum(case when expr then ... end) вместо sum(...) filter (where expr)? Я - нет. В оракле писать nvl проще чем coalesce (и для оптимизатора это не одно и то же, вроде бы).
- таблицу связи многие-ко-многим проще запомнить, когда она состоит из имён двух таблиц, а там рекомендуется придумывать каждый раз новое слово
- лично меня БЕСИТ написание зарезервированных слов большими буквами. Кажется, что запрос писался в каком-то генераторе (и человек только что начал учить sql), либо человек набирает код в блокноте.
- сдвиг join вправо от коридора из пробелов. Намекает на то, что у нас есть основная таблица, а все остальные - второстепенные, хотя далеко не всегда можно выделить основную таблицу. Плюс, глазами читать такой сдвинутый join тяжело, т.к. имя таблицы и условия сдвинуты вправо.

В общем, главное, чтобы правила были едиными для проекта, а ещё лучше - для всех проектов, разрабатываемых одной компанией.
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
подскажите пожалуйста, как такое может быть что делаю query, база возвращает результат, но поле, которое в базе имеет тип int8, почему-то возвращается в строковом виде... при этом есть другое поле с типом int4, и оно возвращается просто числом...
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Возвращается куда?
Вот эта «куда» и ломает типы с вероятностью 146%
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
т.е тут даже ничего не происходит..)
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Где - тут? Вы используете среду разработки, пишете на неком языке программирования, используя некий драйвер для доступа к БД и преобразуете это в картинку на знаю какой формат.
Вот на каком-то из этих шагов типы и превращаются в тыкву текст.
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
webstorm, node js, fastify, эхх ладно
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
попробуйте погуглить на предмет подобных проблем в контексте вашего драйвера через который вы из приложения подключаетесь к БД
источник

VS

Vitaliy Snitko in pgsql – PostgreSQL
Ок.
источник

МК

Михаил Ковальчук... in pgsql – PostgreSQL
окей..спасибо
источник

VS

Vitaliy Snitko in pgsql – PostgreSQL
Как правильно разложить по таблицам вот такой объект данных?
У каждого юзера может быть много объектов travels. Каждый travels уникален и никогда не повторяется ни у юзера ни у других юзеров.

{
"user_name":"Jon_12",
"first_name":"Jon",
"last_name":"Getsby",
"user_id":2438207,
"travels" : {
   "type":"Vacation",
   "id":1,
   "city":[
       "Toronto",
       "Sidney"
       ],
   "rivers":[
       "Missisipy",
       "Amazonka"
       ],
   "comment":true,
   "good":[
       "good people",
       "good weather"
       ],
    "bad":[
       "expensive",
       "long away"
       ]
    }
}

Я понимаю, что будет табличка _users и табличка _travels и у _users будет связь с _travels.

Не пойму как организовать _travels...
1. Как табличку в которой будут лежать отдельные объекты по ключам-id юзера?
2. Или как наборы объектов _travels которые будут лежать внутри массива по ключу юзера...

В первом случае, при выдаче данных пользователя нужно будет выбирать из _travels все объекты по id пользователя и джоинить к основным данным...

Во втором случае, брать в _travels массив с объектами по id-ключу юзера...

Как будет правильно и оптимизированно?
источник

Д

Денис in pgsql – PostgreSQL
Переслано от Денис
Как сделать отбор только по тем авторам, суммарное кол-во книг которых > 10? Если функции не поддерживаются в WHERE


SELECT sum(amount) as Количество_книг, author FROM book GROUP BY author;


Количество_книг |      author      
-----------------+------------------
             15 | Есенин С.А.
              8 | Булгаков М.А.
             12 | Достоевский Ф.М.
источник

P

Petr in pgsql – PostgreSQL
Having
источник

Д

Денис in pgsql – PostgreSQL
Боже, точно.. Спасибо большое🤦‍♂️
источник

R

Radist in pgsql – PostgreSQL
Придумывать таблицы по структуре json-а - плохая идея. Надо отталкиваться от логики бизнесовых требований, а также источников данных, которые у вас будут.
Вот у вас там есть списки топонимов, разделённые по типам. Может быть, это должна быть таблица-справочник топонимов с типизацией + таблица связи многие-ко-многим с travels. Отдельно, видимо, будет таблица положительных и отрицательных моментов в связке с travels. И тут может быть как зависимая таблица, так и справочник + связь. Но опять же, у вас может быть бизнес-требование, которое сделает такую схему жутко неудобной.
Кстати, зачем вы добавляете _ в начало имени таблицы? Это очень странно смотрится. Уж лучше делать общий для таблиц всего проекта префикс.
источник

А

Алекс in pgsql – PostgreSQL
привет, ребят, пг админ выдает сообщение
ssl отключен, захожу под виндой
адрес с localhost на 127.0.0.1 поменял

таблицы и их структуру видно, содержание нет

ниче не помогает, куда копать?
источник