Как организовать бизнес-логику в хранимых процедурах SQL Server. Реализация слоя BLL в SQL

В платформе Falcon Space бизнес-логика создается прямо в хранимых процедурах.

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

К примеру, у компонента Таблицы есть хранимки GetItems (получить данные для вывода таблицы), UpdateItemField (изменение поля таблицы), RemoveItem (удаление строки), FastCreate (быстрое создание записи по 1 полю).

Процедура GetItems содержит строго определенные параметры (см. документацию по таблицам) и платформа ожидает от процедуры определнного вывода (до пяти SELECT с определенными параметрами), который она использует для настройки вывода таблицы.

Более подробно про workflow разработки простейшей страницы

Пример создания страницы с таблицей и формой на примере HR

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

Однако бывают такие ситуации, как проверка доступа, логирование операций, выполнение некой типовой операции из нескольких шагов (пополнение баланса).

В этом случае имеет смысл создавать дополнительных слой хранимых процедур и функций.

Эти процедуры будут использоваться везде в хранимых процедурах компонентов.

Именование подобных процедур в платформе Falcon Space производится следующим образом: [system]_[entity]_[operation].  Пример security_persons_canRead

Подобные хранимки не должны иметь внутри выходного select (иначе это собъет работу хранимых процедур компонентов, либо придется использовать insert into ... exec ...).

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

Примечание: Для сложной разметки имеет смысл использовать механизм HTML блоков

Все вопросы, связанные с обработкой ошибок лежат на самой платформе. При этом имеет смысл в хранимых процедурах обрабатывать некорректные ситуации правильным выходным select 

if(@isFail=1) begin
    select 0 Result, 'Что-то пошло не так...' Msg
    return
end

Что еще посмотреть по SQL Server

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Веб-приложения на MS SQL. Партнерская программа для разработчиков и веб-студий

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.
Смотреть примеры с кодом SQL
Документация по платформе
Демо-стенд компонентов
На стенде можно посмотреть различные компоненты в действии: таблицы, формы, модальные окна, диаграммы, карта и т.д.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.