Oii, Igor! Tudo bem?
A decisão entre aplicar restrições no Banco de Dados ou no código-fonte depende do contexto e dos objetivos do sistema. Usar restrições como o CHECK no Banco de Dados garante a integridade dos dados na própria camada de armazenamento, independentemente da origem dos dados (aplicação, scripts ou integrações).
Em outra perspectiva, validar no código-fonte oferece maior controle sobre o tratamento de erros e permite mensagens personalizadas para o usuário. Porém, essa abordagem exige que todas as aplicações e scripts incluam a lógica de validação, o que pode gerar inconsistências.
Então, é recomendado usar restrições no Banco de Dados para garantir a integridade dos dados em todos os cenários. As validações no código podem complementar esse processo, melhorando a experiência do usuário com mensagens mais amigáveis.
Espero ter ajudado, qualquer dúvida conte conosco.
Bons estudos, Igor!