Há muito tempo que tenho a senssação de estar fazendo a mesma coisa duas vezes.
Vejo que as mesmas validações que faço nos atributos dos meus Objetos de Domínio estão também sendo feitas para garantir a Integridade de Domínio do meu BD. E vejo também que as mesmas regras que faço para os relacionamentos entre os meus Objetos de Domínio estão também sendo feitas para garantir a Integridade de Referencial do meu BD.
Por causa disso me surgem as seguintes dúvidas:
- Essas validações/verificações/regras de relacionamentos são mesmo regras de negócios?
- Onde eu devo implementar essas validações/verificações/regras de relacionamentos? Nos objetos, no BD ou em ambos? Em ambos não seria um disperdício de tempo, mas implementar em um único lugar me parece deixar o modelo de BD ou de objetos inconsistente. (Me parece que no banco é o lugar mais fácil para implementar esse tipo de coisa e me parece ser o lugar ideal para implementar isso pois o banco lida com os dados e tudo isso diz a respeito aos dados)
- Vocês podem me ajudar a ver um exemplo de regra de negócio que esta presente somente no modelo de objetos e não no banco de dados e vice-versa?
Conto com a ajuda de vocês!
Grande abraço!