powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / linq2sql vs хранимые процедуры
25 сообщений из 119, страница 3 из 5
linq2sql vs хранимые процедуры
    #37107508
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну что бы не мучился - на вход процедуры подается таблица форинкеев родительской таблицы на всю глубину помеченого подграфа
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37107516
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в случае динамической скл подается сам актуальный скл
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37107521
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для джойна
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37107529
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte... ХП - это защита от дурака. Использование правильно написанных ХП не приведет данные в БД к некорректности, не даст криворукому програмисту, разрабатывающему клиента, поломать данные. У него просто не будет прав на это..
предполагается, что ХП пишут исключительно пряморукие программисты
или, что с помощью ХП поломать данные в принципе невозможно?
:)
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37107976
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopMegabyte... ХП - это защита от дурака. Использование правильно написанных ХП не приведет данные в БД к некорректности, не даст криворукому програмисту, разрабатывающему клиента, поломать данные. У него просто не будет прав на это..
предполагается, что ХП пишут исключительно пряморукие программисты
или, что с помощью ХП поломать данные в принципе невозможно?
:)Имеется в виду, что во первых, защита на нескольких уровнях повышает вероятность её срабатывания. Во вторых, ХП пишут программисты, которые разработчики БД. Они могут неумелыми действиями поломать веб-сервер, но данне - это их родное :-)
Это называется "специализация".

Ну и код в ХП действительно более "прямой".

Обычно программисты, разрабатывающие клиента, не представляют, какие запросы выполняются на сервере в результате выполнения их кода. Ну, может быть, один из 20 представляет, обычно это кто-то повыше тимлида.

А вот для программиста ХП такое представить трудно.
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108008
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgНе увидел я такого изменения темы, по крайней мере в вашем первом посте.

хм, в моем первом посте я спрашивал что делать, если клиент написан с ООП подходом, и даже приводил примеры классов. По определению, если строиться доменная модель, то вся логика там и находиться (если это не какой-нибудь анемик, но даже в этом случае логика просто выноситься в классы сервисов). Тогда уж скажите, о какой архитектуре вы думали, что есть и ООП и вся логика в БД.

alexeyvgКонечно, если БД - это просто не стирающиеся при выключении питания переменные, интерфейсов нет, то, конечно, использование ХП не имеет смысла.

вот именно. Какая-то часть логики в базе правда в любом случае присутствует в виде ограничений на данные, но не более.
Маппинг на ХП в этом случае приведет к создания CRUD процедур для каждой сущности и крайне неэффективной работе с БД

ViPRosты просто не въехал :)
грузится именно помеченный подграф(макротип, бизнес-объект, агрегатный класс,,. как хошь назови), а не произвольный
процедуру эту дописывает автоматом на случай нулл даже адо.нет :)
к картинкам бы надо было посерьезнее присмотреться

ну так покажи уже код наконец.
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108009
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte
Код: plaintext
1.
2.
3.
if @surname is null
select * from People where Name = @name
else
select * from People where Name = @name and surname = @surname 

так. Покажи-ка тогда что делать, когда таких параметров 15 штук :)
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108016
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS,

это закрытая система
все что тебе надо было, я сказал
садись и делай :)
когда 1 и 15, 15 называется рутиной, а рутину автоматизируют
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108033
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosэто закрытая система

т.е. кода ты даже и не видел
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108035
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgИмеется в виду, что во первых, защита на нескольких уровнях повышает вероятность её срабатывания. Во вторых, ХП пишут программисты, которые разработчики БД. Они могут неумелыми действиями поломать веб-сервер, но данне - это их родное :-)
Это называется "специализация".
"которые разработчики БД" вполне могут быть такие же криворукие, как и любые другие програмисты
родные для них данные или не очень родные...
я сейчас пишу отчет по ... виду страхования
весь отчет - чистый SQL - система другого не предполагает
(будет время - реализую оный и через php, и через .NET)
увы и ах, при моем мнении, что БД - исключительно хранилище данных
приходится вот такое делать
могу сказать, что когда вкапываешься в структуру БД...
слов нет, одни выражения... многоэтажные
разработчики БД не только не знают, что такое внешние ключи, но и о никаких нормальных формах даже не слышали
у них - клипперовская система 20-летней давности с костылями "под винду"... :(
отсутствие документации... это даже не пэстня...

alexeyvgОбычно программисты, разрабатывающие клиента, не представляют, какие запросы выполняются на сервере в результате выполнения их кода. Ну, может быть, один из 20 представляет, обычно это кто-то повыше тимлида.
непрадва
это, может быть, применимо к конфигурастам 1С (и то не ко всем), но любой студент, к-й клепает сайты на php, пусть самые примитивные, но запросы писать умеет

alexeyvgА вот для программиста ХП такое представить трудно.
очень даже лехко
если "фирма" разрабатывает какую-нить систему, то сомневаюсь, что там работают и "гуру", и "студенты" на разработке модулей
не может такого быть - один модуль разрабатывает "гуру", а другой - "студент"
либо все - "гуру", либо все - "студенты"
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108042
ultra_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgОбычно программисты, разрабатывающие клиента, не представляют, какие запросы выполняются на сервере в результате выполнения их кода. Ну, может быть, один из 20 представляет, обычно это кто-то повыше тимлида.

Кхм... какие-то уж очень тупые у Вас там программисты. Это же как они бедняги данные обрабатывают даже не имея представления о их структуре? Или у Вас только студенты за миску супа? Ну специализация при работе над крупным проектом идет только на пользу, но чтобы писать программу не зная SQL...
По теме: имхо linq2sql какбэ не зря придумали. Мы обычно тоже через ХП работаем, но писать бизнес логику на linq2sql удобнее (читай: эффективнее). По сути автоматически делается то, что при Вашем подходе требует написания тучи ХП и тучи кода. Материализовать объекты, сделать сложные выборки с массой условий...
Но с другой стороны, конечно, сложнее оптимизировать саму БД....
Вот и гадай, что лучше - туча очень оптимизированных ХП, возвращающих избыточные данные или простые понятные "тупому" программисту средства, делающий запросы, которые возвращают только нужные данные?
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108051
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultra_alexВот и гадай, что лучше - туча очень оптимизированных ХП, возвращающих избыточные данные или простые понятные "тупому" программисту средства, делающий запросы, которые возвращают только нужные данные?
зависит от типа приложения.. Если датацентрик - то вся логика обычно отправляется на сервер в ХП. Если сложная ветвистая логика - то доменная модель удобнее. Хотя по большей части будет зависеть от скиллов, которыми обладают разработчики..
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108053
ultra_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StalkerSзависит от типа приложения..
Вот! В том то и дело, что вместо упертых попыток доказать абсолютную истинность своей точки зрения можно просто определить область применения той или иной технологии.

Если приложение использует БД только как хранилище данных, то технически без разницы как делать запросы: через ХП или из кода. Но зато ХП проще поддерживать.

Если в приложении есть сложная бизнес-логика, то уже вопрос как оно спроектировано. Если все сделано "красиво" и все сущности материализуются в объекты, то ИМХО правильнее использовать linq2sql. А если бизнес-логика тупо гоняет данные туда-сюда, то проще через ХП.

Ну а если есть желание написать ВСЮ бизнес-логику в БД... Ну вот изменились условия задачи (заказчик сказал, что теперь мы вот это рассчитываем не так, а эдак), тогда переделываем мы N ХП и... В 90% случаев код тоже нужно менять. А если код все равно менять, то проще сразу все делать через код.

Или я в чем-то не прав?
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108055
ultra_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PS. Если чессно, я не сталкивался с ситуацией, когда за БД отвечают одни люди, а за программный код другие. У нас небольшая команда и каждый умеет и то и другое. Вот надо мне реализовать такой-то функционал, беру пишу какой мне надо код, какие мне надо ХП и все!
Знающие люди, подскажите, как работает команда, когда программер не лазит в БД? Я просто не представляю! Получается я должен пойти к БД-девелоперу и объяснить, что мне нужно, чтобы БД вернула мне такие-то данные. А он через 15 минут говорит: "ок, Саня, можешь юзать sp_Get_bla_bla_bla". Так что-ли?
Так может мне быстрее самому написать чем кому-то объяснять? Или в чем тогда выигрыш?
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108061
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultra_alexНу а если есть желание написать ВСЮ бизнес-логику в БД... Ну вот изменились условия задачи (заказчик сказал, что теперь мы вот это рассчитываем не так, а эдак), тогда переделываем мы N ХП и... В 90% случаев код тоже нужно менять. А если код все равно менять, то проще сразу все делать через код.

когда клиент тонкий и только дергает ХП с сервера, то при изменении бизнес-логики как-раз таки клиента менять часто не приходиться, a только тогда когда меняется сигнатура методов
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108063
ultra_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я так и написал:

Если приложение использует БД только как хранилище данных, то технически без разницы как делать запросы: через ХП или из кода. Но зато ХП проще поддерживать.
Если в приложении есть сложная бизнес-логика...
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108435
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgОбычно программисты, разрабатывающие клиента, не представляют, какие запросы выполняются на сервере в результате выполнения их кода. Ну, может быть, один из 20 представляет, обычно это кто-то повыше тимлида.
Chopнепрадва
это, может быть, применимо к конфигурастам 1С (и то не ко всем), но любой студент, к-й клепает сайты на php, пусть самые примитивные, но запросы писать умеет

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

Тот, кто клепает сайты на php, конечно, представляет - он же сам пишет запросы.

Я про тех, кто использует ОРМ, linq2sql...

Тогда некоторые ещё могут с трудом приблизительно представить , что будет делать сервер в ответ на конкретное выражение от linq2sql.

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

Смотришь иногда на трейс - там бред. А в ответ программисты говорят - это не мы, это linq2sql :-)

ultra_alexПо теме: имхо linq2sql какбэ не зря придумали. Мы обычно тоже через ХП работаем, но писать бизнес логику на linq2sql удобнее (читай: эффективнее). По сути автоматически делается то, что при Вашем подходе требует написания тучи ХП и тучи кода. Материализовать объекты, сделать сложные выборки с массой условий...Ну я же не говорю, что linq2sql зря придумали :-)

Просто при увеличении сложности систем ХП становятся удобным способом деления на уровни.

Рассматривать БД как часть прикладной программы можно только в простейших случаях. Т.е. сайтик и одноразовая БД для управления контентом этого сайта - тут нормально, а если программа пишется для уже существующей БД?

Если БД существует долго, то такой подход просто не сработает. Программ для этой БД будет написано много, они будут на разных языках (понятное дело - ведь век языка недолог), мапировать всё будет сложно...
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108604
Voland_de_mort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultra_alexPS. Если чессно, я не сталкивался с ситуацией, когда за БД отвечают одни люди, а за программный код другие. У нас небольшая команда и каждый умеет и то и другое. Вот надо мне реализовать такой-то функционал, беру пишу какой мне надо код, какие мне надо ХП и все!
Знающие люди, подскажите, как работает команда, когда программер не лазит в БД? Я просто не представляю! Получается я должен пойти к БД-девелоперу и объяснить, что мне нужно, чтобы БД вернула мне такие-то данные. А он через 15 минут говорит: "ок, Саня, можешь юзать sp_Get_bla_bla_bla". Так что-ли?
Так может мне быстрее самому написать чем кому-то объяснять? Или в чем тогда выигрыш?

Off.
Нормально работает. В большинстве своем программисты не БД части даже не подозревают, что происходит в системе. БД разработчики подготавливают все необходимые интерфейсы для работы с данными, после чего программисты Клинета/Сервера апп пользуются этими интерфейсами. 99% необходимости лезть в БД нет у остальной команды. На 1% можно и задачу создать.
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37108789
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаю я эти холивары, читаю...
так и не убедился, что к БД надо относиться, как к чему-то большему, чем простое хранилище данных,
способное на что-то большее, чем следить за ссылочной целостностью
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37109301
Voland_de_mort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopчитаю я эти холивары, читаю...
так и не убедился, что к БД надо относиться, как к чему-то большему, чем простое хранилище данных,
способное на что-то большее, чем следить за ссылочной целостностью

а как тогда обрабатывать большие объемы данных - т.е. когда в правилах БЛ надо обновить/расчитать десятки тысяч значений? или как быть, когда идет связанная обработка? руцями, итерационно?
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37110299
ultra_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chopтак и не убедился, что к БД надо относиться, как к чему-то большему, чем простое хранилище данных
Ну тут уж как посмотреть. Если смотреть на БД как на "набор табличек с данными" и делать запросы из кода, то - ДА!
Но потом приходит понимание, что запросы реализуют значительную часть логики и поэтому удобнее вынести ее в БД (по средствам ХП). Это создает целостность данных и методов работы с ними
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37110484
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultra_alexЭто создает целостность данных и методов работы с ними
и размазывает бизнес-логику по разным слоям
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37110986
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopultra_alexЭто создает целостность данных и методов работы с ними
и размазывает бизнес-логику по разным слоям1. Ничего страшного. Обычное дело
2. Слой клиента обычно некритичный: скрыть/деактивировать контрол на форме или что-то в этом роде.
С бизнес-логикой сама СУБД справляется как правило лучше и эффективнее, чем приложение.
Единственный реальный минус - непортируемость на другую СУБД, но далеко не всегда критично.
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37111227
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVChopи размазывает бизнес-логику по разным слоям1. Ничего страшного. Обычное дело
2. Слой клиента обычно некритичный: скрыть/деактивировать контрол на форме или что-то в этом роде.
С бизнес-логикой сама СУБД справляется как правило лучше и эффективнее, чем приложение.
Единственный реальный минус - непортируемость на другую СУБД, но далеко не всегда критично.
1. спорно: обычное дело - прог приложения лучше знает предметную область, чем прог БД, переносить бизнес-логику в БД - добавлять лишнее звено
2. спорно: приведи пример для 1С да и слой клиента зачастую состоит не только из этого, а в случае толстого клиента так и ваще
спорно: бизнес-логика состоит не только из работы с данными
спорно: минус не единственный, например серьезный минус - вместо одного прога надо два, вместо того чтобы поддерживать один модуль - приходится поддерживать два со всеми вытекающими
...
Рейтинг: 0 / 0
linq2sql vs хранимые процедуры
    #37111279
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. спорно: приведи пример для 1С да и слой клиента зачастую состоит не только из этого, а в случае толстого клиента так и ваще
спорно: бизнес-логика состоит не только из работы с даннымиДа уж 1С просто образец высокой производительности и оптимальности. Ога.
Сделано это в т.ч. для портируемости. Один код для любой СУБД. А сама СУБД в данном случае - свалка таблиц.
Аналогично кстати в большинстве западных ERP систем.
переносить бизнес-логику в БД - добавлять лишнее звеноТак и запишем - ХП и триггеры придумали дураки. :)
...
Рейтинг: 0 / 0
25 сообщений из 119, страница 3 из 5
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / linq2sql vs хранимые процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]