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