Когда лучше писать запросы непосредственно в коде, а когда лучше вынести их в процедуры? Делаю WCF службу, которая должна тянуть данные из MS SQL и отвечать на запросы клиентов и озадачился:
Когда лучше писать запросы непосредственно в коде, а когда лучше вынести их в процедуры?
Пытался найти какие-то паттерны, которые дают рекомендации, но не нашел...
Я выделил 3 возможных решения и их проблемы:
-Если писать все подряд в коде, то код будет ,на мой взгляд, грязным, так как в нем будет много всего, что не входит в специфику языка.
-Если писать все в процедурах, то в процедурах будет много банальностей(Select * from User).
-Если писать элементарные запросы в коде, а сложные выносить в процедуры, то , наверное, код станет тяжелее сопровождать. Есть и еще 1 проблема: как отделить элементарные запросы от сложных? Конструкция из 4 JOIN считается сложной?
Я , лично, склоняюсь к 3 варианту, но существуют ли какие-то соглашения для определения сложности запросов?
Как вы решаете, что нужно выносить в процедуры, а что нет?Что рекомендуется оставлять в коде?
Сам я планирую использовать паттерн Data Mapper.
ОРМ я использовать не планирую(Если только даппер, для удобства использования запросов), так как он сам-то по себе где-то хорош, но когда дело доходит до соединений, то выглядит это ужасно, да и сам по себе запрос не оптимальны может составиться, на мой взгляд чистый SQL запрос наиболее красивее выглядит .

21 Авг 2019 в 07:05
249 +1
0
Ответы
1

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

Вот несколько рекомендаций по выбору между написанием запросов непосредственно в коде и вынесением их в процедуры:

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

Если запрос используется в нескольких местах вашего кода, то целесообразно вынести его в отдельную процедуру или функцию. Это поможет избежать дублирования кода и упростит его поддержку в дальнейшем.

В случае сложных запросов, с большим количеством операций и JOIN, также рекомендуется выносить их в процедуры. Это поможет улучшить читаемость и поддерживаемость вашего кода.

Каждый проект уникален, поэтому важно адаптировать подход к написанию запросов под конкретные требования и особенности вашего приложения. При этом использование паттерна Data Mapper может упростить работу с базой данных и улучшить обработку данных в вашем приложении.

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

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир