Разумный компромисс

aleks058

Можно бизнес-логику частично включать в SQL запросы, чтобы обработка шла на сервере.
Можно перегонять целые таблицы и обрабатывать их на клиенте.
А где разумный компромисс?
Вопрос родился, когда я пытался составить рекурсивный запрос и понял, что его гораздо проще запрогать на Шарпе, чем на SQL.
Вообще, есть какие-то рекомендации по работе с древовидными структурами, сохраненными в необъектноориентированной БД типа mssql?

xz_post

миллион записей не перегонишь из бд на клиента/сервер приложения...
А где разумный компромисс?
хз... если есть смысл - лучше писать хп
а что ты с деревом делаешь. Вообще в 2005 мс скулб сервере рекурсивные запросы можно писать через WITH

FRider

Насчет древовидных структур в СУБД уже обсуждалось в этом форуме, можно поискать.
Я помню 2 подхода:
1. В каждой стоке есть поле ParentId, указывающее на родительскую строку.
Тут почти вся логика будет перенесена на клиента.
2. Завести специальное текстовое поле, в котором храниться строчка типа полного пути к эдементу(как в файловой системе). Из плюсов - одним запросом можно сдернуть всех детей конкретного элемента(через LIKE).
Компромисс как всегда зависит от задачи, имхо, надо мерять производительность, "легкость" поддержки кода, когда он разнесен в СУБД и на клиента и т.п. Кстати, в скл 2005 можно будет делать хранимки на .Net.

voronetskaya

Разумный компромисс - это бизнес-логику вытащить на appserver

Hastya

Разумный компромисс определяется профилированием.
Оставить комментарий
Имя или ник:
Комментарий: