Это отличный вопрос! Я нашел это после того, как уже задал симлиар вопрос , но это более конкретно. Это появилось в результате решения об изменении дизайна, которое я не принимал участие в принятии.
По сути, мне сказали, что если у вас есть миллионы строк данных в таблицах вашей базы данных, тогда посмотрите на размещение бизнес-логики в хранимых процедурах и триггерах. Это то, что мы делаем прямо сейчас, превращая Java-приложение в хранимые процедуры для удобства обслуживания, поскольку код Java стал более сложным.
Я нашел эту статью на: The Business Logic Wars Автор также сделал миллион строк в аргументе таблицы, что мне показалось интересным. Он также добавил бизнес-логику в javascript, который находится на стороне клиента и за пределами уровня бизнес-логики. Я не думал об этом раньше, хотя я использовал javascript для проверки в течение многих лет, наряду с проверкой на стороне сервера.
Мое мнение таково, что вы хотите, чтобы бизнес-логика на уровне приложения / среднего уровня была практической, но не стоит сбрасывать со счетов случаи, когда имеет смысл поместить ее в базу данных.
И последнее: еще одна группа, в которой я сейчас работаю, выполняет огромную работу с базами данных для исследований, и объем данных, с которыми они имеют дело, огромен. Тем не менее, для них у них нет бизнес-логики в самой базе данных, но они хранятся на уровне приложений / промежуточного уровня. Для их дизайна, приложение / средний уровень было правильным местом для него, поэтому я бы не использовал размер таблиц в качестве единственного подхода к проектированию.