Если бизнес-правила применяются как на уровне приложения, так и на уровне базы данных, или только один из двух?

Я соблюдал бизнес-правила как на уровне моего приложения (модели), так и на уровне базы данных (хранимые процедуры, вызывающие ошибки).

Я ' я дублировал свои проверки в обоих местах по нескольким причинам:

  1. Если условия меняются между когда они проверяются в код приложения и когда они проверен в базе данных, проверка бизнес-правил в базе данных спасет положение. База данных также позволяет блокировать различные записи проще, чем в мой код приложения, кажется естественно сделать это здесь.
  2. Если у нас есть сделать некоторые пакетные данные вставки / обновления в базу данных напрямую, если я маршрутизирую все эти операции через мои хранимые процедуры / функции, которые соблюдают бизнес-правила проверки, у меня нет шансов вводить неверные данные, даже если мне не хватает защиты, которую я получил бы, если бы выполнял однократный ввод через приложение.
  3. Хотя соблюдение этих правил ТОЛЬКО в база данных будет иметь такой же эффект по фактическим данным, кажется неправильно просто бросать данные в базы данных перед первым делом попытка подтвердить, что это соответствует ограничениям и бизнес-правилам.

Каков правильный баланс?

7
задан aw crud 18 November 2010 в 16:24
поделиться