Size: a a a

pgsql – PostgreSQL

2021 February 13

VG

Viktor Grigorev in pgsql – PostgreSQL
A G
А из командной строки все ок
а из браузера то не ок. выводишь not connected, а можно еще и ошибку вывести
источник

AG

A G in pgsql – PostgreSQL
echo pg_last_error($dbconn); - так?
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
A G
echo pg_last_error($dbconn); - так?
попробуй. еще можно попробовать error_reporting(E_ALL) и ini_set(‘display_errors’, 1). Не помню как в php сделать вывод всех ошибок на экран
источник

AG

A G in pgsql – PostgreSQL
Ничего
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
где-то должна быть ошибка, надо ее найти, в логах php, postgres, вебсервера
источник

AG

A G in pgsql – PostgreSQL
В теории, может что-то быть в настройках apache?
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
в теории апач может запускать какой-то другой скрипт (где-нибудь копия старая лежит), а ты правишь этот. про разные php.ini уже писали
источник

Н

Неъматжон in pgsql – PostgreSQL
Здравстуйте!
Если здесь есть люди работавщие или работающие в связки FireDac+PG? Как  правильно подключиться к базы?
Длл ка находится в указанном пути, этот путь занесен в переменную PATH.
pgAdmin и dbForge Studio 2020 без проблем подключаются.
источник

AG

A G in pgsql – PostgreSQL
Dmitriy
В php для командной строки другой php.ini, вроде, используется
Можно подробнее?
источник

D

Dmitriy in pgsql – PostgreSQL
A G
Можно подробнее?
Когда через консоль запускаешь, используется php cli. У него свой отдельный файл php.ini. У php-fpm - другой
источник

MS

Mikhail Smolnikov in pgsql – PostgreSQL
Всем привет)

Есть таблица users и data
Предполагается, что у каждого юзера может быть несколько строчек из data
В таком случае же делается отдельная таблица для связки users => data?
Какой тогда primary key будет? Он же должен быть уникальным.
А тут один юзер будет иметь несколько строк с data.id

Или сделать наоборот
Primary key == data.id?

Какая практика вообще в таких случая приветствуется?
Cпасибо)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Viktor Grigorev
https://www.db-fiddle.com/f/cctTtuS3sSizzyTxTGn6iF/1 - как можно интерпретировать результаты эксплейна

Buffers: shared hit=22 в запросе, который достает только 10 строк и
Buffers: shared hit=3 в запросе, который достает 100 строк ?

Buffers hit - это абстрактная метрика вроде cost-ов, которые нельзя напрямую сравнивать?
это не абстракная величина, а вполне реальная — кол-во блоков, в которые база посмотрела обрабатывая запрос.
если у вас небольшая таблица с высокой плотностью записей, то 100 строк может и на одном блоке уместиться.
и большое число блоков с небольшим числом возвращённых строк бывает, когда у вас идёт Scan (любой) с фильтрацией, или же вы аггрегируете записи.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Mikhail Smolnikov
Всем привет)

Есть таблица users и data
Предполагается, что у каждого юзера может быть несколько строчек из data
В таком случае же делается отдельная таблица для связки users => data?
Какой тогда primary key будет? Он же должен быть уникальным.
А тут один юзер будет иметь несколько строк с data.id

Или сделать наоборот
Primary key == data.id?

Какая практика вообще в таких случая приветствуется?
Cпасибо)
отдельная таблица — это многие-ко-многим. в вашем случае достаточно в data добавить колонку user_id
источник

D

Denisio in pgsql – PostgreSQL
Mikhail Smolnikov
Всем привет)

Есть таблица users и data
Предполагается, что у каждого юзера может быть несколько строчек из data
В таком случае же делается отдельная таблица для связки users => data?
Какой тогда primary key будет? Он же должен быть уникальным.
А тут один юзер будет иметь несколько строк с data.id

Или сделать наоборот
Primary key == data.id?

Какая практика вообще в таких случая приветствуется?
Cпасибо)
на data_users будет композитный primary key например, если не добавлять дпоолнительных полей
источник

MS

Mikhail Smolnikov in pgsql – PostgreSQL
Victor Yegorov
отдельная таблица — это многие-ко-многим. в вашем случае достаточно в data добавить колонку user_id
Хорошо, а если предположим, что несколько юзеров будут иметь одну и ту же data?
источник

D

Dmitriy in pgsql – PostgreSQL
Mikhail Smolnikov
Хорошо, а если предположим, что несколько юзеров будут иметь одну и ту же data?
Поле data_id в таблице users
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Mikhail Smolnikov
Хорошо, а если предположим, что несколько юзеров будут иметь одну и ту же data?
это дополнительное условие, или же полностью новое?
источник

MS

Mikhail Smolnikov in pgsql – PostgreSQL
Victor Yegorov
это дополнительное условие, или же полностью новое?
Первоначально заложить и такую возможность
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
Victor Yegorov
это не абстракная величина, а вполне реальная — кол-во блоков, в которые база посмотрела обрабатывая запрос.
если у вас небольшая таблица с высокой плотностью записей, то 100 строк может и на одном блоке уместиться.
и большое число блоков с небольшим числом возвращённых строк бывает, когда у вас идёт Scan (любой) с фильтрацией, или же вы аггрегируете записи.
в приведенном запросе видно, что строк мало, они расположены упрядоченно скорее всего и чтение первых 10 строк затрагивает не больше блоков, чем чтение первых 100 строк
источник

MS

Mikhail Smolnikov in pgsql – PostgreSQL
Dmitriy
Поле data_id в таблице users
Грубо говоря каждый раз перед созданием data проверять, есть ли такое уже в таблице, и если есть, отсылать на эту строку?
источник