Size: a a a

DBA - русскоговорящее сообщество

2021 April 16

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Переслано от Ilia Zviagin
И, соответственно, любые операции по изменению таблицы также возможны, правильно понимаю?
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Переслано от Alexey Lesovsky
да
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Переслано от Ilia Zviagin
Спасибо....
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Вячеслав, ящитаю, с тебя пиво!
источник

A

A L T I R T I X in DBA - русскоговорящее сообщество
Привет всем.
Нуждаюсь в мнении профиссионалов, так как я сейчас обычный студент.
Раньше, если мне нужно было сделать приложение, то я использовал СУБД SQL Sever, ASP.NET фреймворк, шаблон MVC и архитектуру REST.
Можно сказать, что напрямую с SQL запросами я не работаю, т.е. работаю с объектами и просто выполняю миграции, а вывод у меня в json.
Но сейчас мне нужно сделать курсовой на FireBird с реляционной основой (без использования объектов), где нужно писать все на запросах.
Так вот вопрос в том, как правильно это сделать?
Я слышал мнение, что писать динамические запросы прямо в коде - это плохой тон, так как это создает понятие толстого клиента и гоняет много трафика.
Тогда получается, что все запросы нужно хранить непосредственно в самой БД на сервере (например, на выборку) и как - то обращаться к ним из кода? Если да, то как это граммотно сделать?
Хотя я себе слабо представляю, как например для добавления и обновления можно сделать готовые запросы, если в запрос полюбому нужно будет встраивать переменные.
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
🍺 Спасибо)) Угощаю ))
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Я слышал мнение, что писать динамические запросы прямо в коде - это плохой тон, так как это создает понятие толстого клиента и гоняет много трафика.

Это бредни. Чушь.
Напиши запросы хоть как-то, как угодно, в общем, для учебного задания это нормально.
Но и для промышленного кода ничего плохого в этом нет (могут быть другие проблемы, связанные с этим, но может и не быть их)
Какого-то "правильного" способа писать запросы не существует. Можешь делать это на клиенте БД, или внутри БД в виде процедур, или как-то ещё.
Чего-то плохого в "толстом клиенте" как таковом тоже нет. Бывают разные архитектуры, они равночасто применяются.

Тогда получается, что все запросы нужно хранить непосредственно в самой БД на сервере

Вовсе не обязательно, но можно - в виде хранимых процедур, триггеров, view. Но они имеют некоторые ограничения.

как например для добавления и обновления можно сделать готовые запросы, если в запрос полюбому нужно будет встраивать переменные.

Можешь написать процедуру с параметрами, которая делает INSERT, и вызвать её с клиента, передавая параметры.

P.S. FireBird IMHO не лучший вариант для изучения, лучше бы тот же SQLServer, или MySQL  или Postgres.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Там ещё что-то добавили...
источник

A

A L T I R T I X in DBA - русскоговорящее сообщество
Искренне благодарю за потраченное время и развернутый ответ 👍
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
источник

AS

Anatoly Shirokov in DBA - русскоговорящее сообщество
что касается промышленной системы, в ней все регулярные запросы (в том числе те, которые формируются клиентом динамически) должны быть строго сосчитаны и для каждого из них подготовлены соответствующие индексы для гарантированного быстродействия. поэтому то что ты написал не соответствует практике промышленного программирования.
источник

AS

Anatoly Shirokov in DBA - русскоговорящее сообщество
типа "пиши, как бог на душу положит" - это бред, имхо
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Согласен.
Но "не соответствует" вывод тоже неправильный.
То, что запрос "динамический" не определяет то, что он плохой, что под него нет индекса.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Для учебного задания даже полезно.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
https://wiki.postgresql.org/wiki/Serializable
А вообще, почему Вы не спрашиваете там, где положено ответят с куда большей вероятностью ( https://t.me/pgsql )? ;)
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Наоборот, IMHO. Точно так же, как и в "практике промышленного программирования" в целом.
И это правильно.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Например, товарищ пишет, что запросы могут гонять много данных.
Вот пусть напишет такой запрос и САМ УВИДИТ, почему так происходит, а не слушает сказки из сети.

И поймёт, что это — не из-за того, что запрос "динамический" на клиенте, а потому, что запрос плохой, или архитектура решения плохая.
источник

A

A L T I R T I X in DBA - русскоговорящее сообщество
Я задал этот вопрос, потому что интересно, как это сделать более менее правильно с точки зрения продакшина. В принципе, я мог бы наклепать целую кучу динамических запросов и сказать, что оно просто работает и все... Но рационально ли оно или нет - это уже другой вопрос.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Без разницы, как делать.

Я бы тебе советовал именно наклепать кучу, и, если ты увидишь, что это вдруг не работает, исправлять и делать как-то по другому.
источник

A

A L T I R T I X in DBA - русскоговорящее сообщество
Ну я думаю, что буду использовать домены, триггеры, хранимые процедуры по максимому)
источник