База данных работает с данными, зачем взвешивать что-то, что уже достаточно сильно ударило, чтобы дать вам данные. Это вопрос производительности и кода. Гораздо проще поддерживать код бизнес-логики, чем хранить все это в базе данных. Sprocs, Views и Functions могут зайти так далеко, пока у вас не появятся представления Views of Views с sprocs для заполнения этого беспорядка. С помощью бизнес-логики вы разделяете свои заботы. Если у вас есть ошибка, из-за которой что-то вычисляется неправильно, проще проверить код бизнес-логики, чем зайти в БД и посмотреть, не испортил ли кто-то что-то в хранимой процедуре. Это очень самоуверенно, и в некоторых случаях это нормально, чтобы поместить некоторую логику в базу данных, но я думаю, что это база данных, а не логическая база, поместите вещи туда, где они принадлежат.
P.S .: Возможно, вы поймаете немного тепла для этого поста, он очень самоуверенный, и кроме цифр производительности нет реальных доказательств ни того, ни другого, и это становится примером того, с чем вы работаете.
РЕДАКТИРОВАТЬ: То, что Кейд упомянул, что я забыл. Относительная целостность. Во что бы то ни стало, пожалуйста, сохраняйте правильную целостность данных в вашей БД, никаких осиротевших записей НА УДАЛЕННЫХ КАСКАДАХ, чеках и еще много чего.