Size: a a a

pgsql – PostgreSQL

2020 May 22

s

sexst in pgsql – PostgreSQL
Может там массивы с idшниками в столбцах лежат.
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
Oleg Kuzmenko
INNER JOIN, например
А как он поможет
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
Может outer с поиском null
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
Если нет null то собрали все
источник

s

sexst in pgsql – PostgreSQL
Андрей Казанцев
Может outer с поиском null
Left, зачем outer?
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
sexst
Left, зачем outer?
Да, left
источник

V

Valery in pgsql – PostgreSQL
А зачем вообще джойн, если много ко многим по требуемым таблицам?
источник

V

Valery in pgsql – PostgreSQL
Таблицу связи обсчитать по условию
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
Так многие ко многим у ачивок и пользователей. Фильтр по пользователю есть. Поэтому остаются только ачивки в какойто компании и все ачивки пользователя. Надо теперь узнать входит ли множество ачивок компании в множество ачивок пользователя.
источник

s

sexst in pgsql – PostgreSQL
Valery
А зачем вообще джойн, если много ко многим по требуемым таблицам?
Зависит от структуры таблиц. Так то быстрее того же join можно было бы сделать select из таблицы ачивок where not exists (select ачивок для пользователя)
источник

V

Valery in pgsql – PostgreSQL
А можно тогда полный текст задачи и примеры таблиц?
источник

V

Valery in pgsql – PostgreSQL
Вы писали изначально другие требования
источник

s

sexst in pgsql – PostgreSQL
Андрей Казанцев
Так многие ко многим у ачивок и пользователей. Фильтр по пользователю есть. Поэтому остаются только ачивки в какойто компании и все ачивки пользователя. Надо теперь узнать входит ли множество ачивок компании в множество ачивок пользователя.
Чтобы просто узнать получил ли пользователь всё ачивки или не все достаточно найти одну любую, которой у него нет. Незачем всё подмножество сравнивать.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Aleksey Budaev
Посмотрите пожалуйста схему БД на соответствие 3НФ, там 3 сущности всего. https://clck.ru/NbEEi
Если использовать строгие определения (Дейт сотоварищи) — не соответствует, конечно, т.к. это вообще не отношения (есть NULL-able атрибуты). Но даже если нет — чтобы сказать, соответствует ли какая-то схема нормальной форме, нужно знать ограничения (constraints) в моделируемой области (для 3NF — функциональные зависимости), которые знаете только Вы, поэтому подобные вопросы, в общем, бесполезно задавать — разве что Вы ожидаете, что мы все эти ФЗ обязаны угадать. :)
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
sexst
Чтобы просто узнать получил ли пользователь всё ачивки или не все достаточно найти одну любую, которой у него нет. Незачем всё подмножество сравнивать.
Ну а как это сделать. Есть два списка id. Один те что в компании. Второй что у пользователя. Тут либо итерироваться по первому и проверять что кто-то не попал во второй. Либо проверить вхождение множества.
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
Ещё разница можно найти.
источник

АК

Андрей Казанцев... in pgsql – PostgreSQL
Теперь надо перевести это на sql
источник

s

sexst in pgsql – PostgreSQL
Aleksey Budaev
Посмотрите пожалуйста схему БД на соответствие 3НФ, там 3 сущности всего. https://clck.ru/NbEEi
BTW, хочу дать совет.
Всегда используйте для полей с числовыми idшниками только bigint и bigserial.
Очень неприколько когда они заканчиваются на боевой системе, знаете ли.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
sexst
BTW, хочу дать совет.
Всегда используйте для полей с числовыми idшниками только bigint и bigserial.
Очень неприколько когда они заканчиваются на боевой системе, знаете ли.
Вам не кажется, что это крутовато? Есть много (довольно очевидных) ситуаций, где int на практике хватит "навсегда" — поставщики, клиенты, сотрудники и т.д. и т.п.
источник

s

sexst in pgsql – PostgreSQL
И да, если речь о чём-то медицинском, то пол в varchar(6) хранить незачем - там всего два варианта. Заодно вопрос с языковыми различиями обозначений снимается.
А если о чём-то околосоциальном, то в наши времена varchar(6) под "Трансгендерный олень-бисексуал" может и не хватить.
источник