Я не думаю, что есть один правильный ответ, это зависит от вашего использования.
Если вы собираетесь использовать очень интенсивно используемую систему с возможностью того, что производительность базы данных может стать узким местом, то вы можете перенести ответственность за проверку на интерфейс, где проще масштабировать с несколькими серверы.
Если у вас есть несколько приложений, взаимодействующих с базой данных, возможно, вы не захотите копировать и поддерживать правила проверки для нескольких приложений, поэтому база данных может быть лучше.
Вам может потребоваться более плавный экран ввода, который не просто поражает пользователя предупреждениями о проверке, когда они пытаются сохранить запись, может быть, вы хотите проверить поле после ввода данных и потери фокуса; или даже когда пользователь вводит текст, изменение цвета шрифта по мере того, как проверка не проходит / проходит успешно.
Также с ограничениями связаны предупреждения о подозрительных данных. В моем приложении у меня есть жесткие ограничения в базе данных (например, кто-то не может приступить к работе до даты своего рождения), но затем во внешнем интерфейсе есть предупреждения для данных, которые, возможно, верны, но подозрительны (например, за восемь лет - начинаю работу).