Я думаю, что эти решения не должны быть обоснованы архитектурной догмой. Данные будут иметь гораздо больше смысла.
Заявления типа «Вся бизнес-логика принадлежит хранимым процедурам» или «Все должно быть на среднем уровне», как правило, делаются людьми, чьи знания ограничены базами данных или объектами, соответственно. Лучше сочетать как тогда, когда вы судите, так и делать это на основе измерений.
Например, если одна из ваших процедур обрабатывает много данных и возвращает несколько результатов, есть аргумент, который говорит, что он должен оставаться в базе данных. Нет никакого смысла вводить миллионы строк в память на среднем уровне, обрабатывать их, а затем обновлять базу данных еще одним циклом.
Другое соображение заключается в том, является ли база данных общей для приложений. Если это так, логика должна оставаться в базе данных, чтобы все могли ее использовать.
Средние уровни, как правило, приходят и уходят, но данные остаются навсегда.
Я сам объектный парень, но я бы слегка наступил.
Это сложная проблема. Я не думаю, что черно-белые заявления будут работать в каждом случае.