
Ilya
07.09.2018
20:34:10
Функции json конешн чутка посложнее чем простой SQL, зато работает очень быстро, быстрее чем всякими жабами и пайтонами.

Andrey
07.09.2018
20:34:25

Yaroslav
07.09.2018
20:35:06

Google

Ilya
07.09.2018
20:35:15
Ну, это если у тебя там прям действительно большеи объёмы. Если что поменьше то можно внешними скриптами на каком-нить пайтоне что-то наколхозить - это будет проще для восприятия.

Andrey
07.09.2018
20:35:38

Yaroslav
07.09.2018
20:35:51
Может, их всё-таки возможно перевести в условия запроса, вроде:
INSERT INTO your_table(...)
SELECT ...
FROM tmp_table
WHERE <constraints>

Andrey
07.09.2018
20:36:27

Ilya
07.09.2018
20:36:43

Andrey
07.09.2018
20:38:06

Ilya
07.09.2018
20:38:52

Yaroslav
07.09.2018
20:39:44
Хм, а это интересная идея, спасибо.
Особо упорот^H^Hные могут попробовать генерировать этот WHERE автоматически, путём "вытаскивания" текущих constraints для данной таблицы из information_schema и т.п. ;)

Terminator
07.09.2018
21:42:34
@karazbaev будет жить. Поприветствуем!

Yukari
08.09.2018
02:54:48
Правда, в таком случае все равно вся транзакция с незалитыми строками будет падать. Поэтому имеет смысл сделать еще таблицы стейджинга, где будет происходит разбор Джейсона до строк, потом строки загружать в целевые таблицы из стейджинга, с лукапом.

Google

Yukari
08.09.2018
02:57:49
Если каждый инсерт строки оборачивать в транзакцию, это будет очень медленно, за то загрузится все, кроме тех строк, которые не пройдут по ограничениям
В общем, процесс обеспечения качества данных вещь очень важная, и необходимо подходить к нему аккуратно и ответственно.

Terminator
08.09.2018
08:14:09
Павел будет жить. Поприветствуем!
Киса Мура будет жить. Поприветствуем!

[Anonymous]
08.09.2018
09:15:37
привет народ

Terminator
08.09.2018
09:16:37
Ксения Великая будет жить. Поприветствуем!

[Anonymous]
08.09.2018
09:16:49
идём

Alex
08.09.2018
09:17:08
сиськи атакуэ!!

Eugen
08.09.2018
09:18:41
День добрый.
Читаю документ по битемпоральным табличкам:
https://hdombrovskaya.files.wordpress.com/2016/09/bi_temporal_pg_open_2016.pdf
и там на 29й странице есть вот такое выражение:
CONSTRAINT "bitemporal pk postgres_cluster_id " check(true or ’unique' <> '@postgres_port@')
у меня 2 вопроса:
1) зачем check, который всегда проходит? true or ...
что я тут не так понял?
2) что это за выражение: '@postgres_port@'? раньше не встречал такого.
Как оно вообще работает, что тут за магия скрыта?

Ilya
08.09.2018
09:33:51
Возможно это некое выражение типа что ты должен сам вставить?
Понимаешь о чём, я @username@ ?

Eugen
08.09.2018
09:43:30
возможно...
тут даже ещё интереснее выражение:
https://github.com/scalegenius/pg_bitemporal/blob/master/sql/metadata.sql#L206

Yaroslav
08.09.2018
10:00:30

Terminator
08.09.2018
10:39:37
@etozheartemka будет жить. Поприветствуем!
Volodymyr Kopach будет жить. Поприветствуем!
@Vologdabobr будет жить. Поприветствуем!

Ivan
08.09.2018
20:16:21
подскажите плз у меня есть 2 модели Student и Group у них связи many_to_many т.е. студент может быть в нескольких группах и группы могут содержать нескольких студентов, в студенте специально для этого держу колонку group_ids - дык мне что то говорят мол так не делают и надо мол джоин таблицу делать, только я не очень понимаю смысл такого усложнения, действительно так делают или это все от лукавого?

Yaroslav
08.09.2018
20:18:19

Google

Ivan
08.09.2018
20:18:46

Yaroslav
08.09.2018
20:20:35
дык что делать то? делать как говорят?
Прочитать про нормализацию (copy-paste без понимания Вас тут до добра не доведёт).
Но в этом случае да, делать отдельную таблицу для свзяи many-to-many.
Например: "student_group".

Alexander
08.09.2018
20:21:59
Здравствуйте. Подскажите есть ли возможность внутри хранимки получить ее имя? Что-нибудь подобное rel_id для таблицы триггерной

Ivan
08.09.2018
20:22:27

Сергей
08.09.2018
20:22:38

Yaroslav
08.09.2018
20:31:48

Nikolai
08.09.2018
20:32:58
Чтобы не делать нормализацию - надо очень хорошо понимать почему ее в данном конкретном случае делать не надо
Во всех остальных случаях она нужна, имх

Ivan
08.09.2018
20:34:18

Nikolai
08.09.2018
20:36:10

Ivan
08.09.2018
20:37:08
видимо придется

Alexander
08.09.2018
20:38:35
Спасибо за информацию. Не додумался искать по английски
См. https://stackoverflow.com/a/41889304

Ivan
08.09.2018
20:40:14

Nikolai
08.09.2018
20:43:16

Yaroslav
08.09.2018
20:43:22

Konstantin
08.09.2018
20:43:55

Nikolai
08.09.2018
20:46:23
Но вообще если бы у меня в команде кто-нибудь задумал хранить многие-ко-многим не через табличку связей - то сначала он бы объяснил свое решение
Мы для крайне ограниченных наборов используем иногда битовые маски

Google

Yaroslav
08.09.2018
20:47:27

Nikolai
08.09.2018
20:48:00

Yaroslav
08.09.2018
20:48:38

Nikolai
08.09.2018
20:48:57
Почти всегда так, согласен

Yaroslav
08.09.2018
20:50:01

Darafei
08.09.2018
20:51:17

Ivan
08.09.2018
20:53:07

Nikolai
08.09.2018
20:53:41

Ivan
08.09.2018
20:54:19

Darafei
08.09.2018
20:55:55
а эти Студенты что-нибудь делают? ну, в классы собираются, на занятия ходят, книжки получают?

Yaroslav
08.09.2018
20:56:47

Ivan
08.09.2018
20:57:08

Darafei
08.09.2018
20:57:38

Nikolai
08.09.2018
20:57:54

Ivan
08.09.2018
20:59:17

MikaelBox
09.09.2018
04:14:59
Орм - зло. Люди делают херню не понимая сути СУБД и это жопа полная. Верно сказано выше, что должна быть третья таблица, которая объединит сущности студентов и групп. А типы данных навроде json в том же постгри больше нужны не для хранения данных, а для обмена данными в веб-разработках.
Про битовые маски тоже верно сказано, мы тоже используем. Это элегантное решение, позволяющее ещё и компактные базы делать

Subb98
09.09.2018
05:02:20

MikaelBox
09.09.2018
05:03:07
Орм как раз придуман для того, чтобы якобы проще делать без особого понимания + лёгкая переносимость между субд
А работать с СУБД не зная основ...

Google

Subb98
09.09.2018
05:04:40
Я полагал всегда, что ORM в мире БД подобно фреймворкам в мире ЯП: облегчает рутину и решает некоторые проблемы безопасности. Но никак не решает проблему понимания

Fike
09.09.2018
05:04:47
пора уже заводить какой-то бложек "разрабы тупые"

Subb98
09.09.2018
05:05:04
ebanoe it есть :D

MikaelBox
09.09.2018
05:06:47