Array
(
)

check constraints?

Mariana Carvalho
   - 25 out 2012

pessoal, não entendi muito bem a usabilidade desse comando, alguem poderia me explicar de forma clara...
obrigada

Robson Robsonalves.net
   - 26 out 2012


Citação:
pessoal, não entendi muito bem a usabilidade desse comando, alguem poderia me explicar de forma clara...

obrigada


O Check é uma regra que roda em tempo de execução e ele válida a condição que foi imposta.
Por exemplo um campo de Valores monetários, não pode possuir valores que ultrapassem a casa do trilhão então crio um Check que inválida qualquer valor acima de trilhão e não inclui a informação, não sei te afirmar se ele informa um erro, se ele ignora a linha inteira ou se ele ignora a coluna com o check.

Citação:

-- A minha visão (desenvolvedor) esse tipo de regra direto na tabela e armazenado no banco de dados é uma forma 'legal' e uma possibilidade de realizar um trabalho, entretanto isso deve ser controlado pela aplicação, o banco de dados relacional deve cuidar do relacionamento, a regra de negócio deve estar em outro lugar. --

Mariana Carvalho
   - 26 out 2012

então seria melhor que essa opção fique na parte de desenvolvimento?

Robson Robsonalves.net
   - 26 out 2012


Citação:
então seria melhor que essa opção fique na parte de desenvolvimento?


Minha opinião é suspeita, pois sou desenvolvedor... mas pelas vias da facilidade, é mais rápido e simples encontrar regras direto na aplicação, o banco de dados tem a opção de resolver o problema, mas ele não foi todo feito para isso.

Tiago
|
MVP
Pontos: 120
    26 out 2012

Concordo que deve ser no desenvolvimento, afinal de contas é uma regra de negócio.... e regras de negócio devem estar as claras para os desenvolvedores.. No entanto se for um projeto pequeno, isso pode ser útil e economizará alguns "ifs" na aplicação.

Alex Lekao
   - 26 out 2012

Ola Bom dia!!!

Interessante a Discusao que acabou virando.

Gostaria de deixar o meu ponto de vista com relacao a regra de negocio estar no banco ou na aplicacao.

Particularmente acho melhor que as regras nao fique na aplicacao, haja vista pode haver mudanca na regra e necessariamente nao haveria mudanca na aplicacao, desta forma nao haveria necessidade de se alterar o codigo fonte de software, poupando o trabalho e os "ifs" no casos... rsrsr

Acho interessante que as regras facam parte de procedures que normalmente serao executadas mais rapidamente em alguns casos e a aplicacao passara os parametros apenas, so havera necessidade de se alterar o codigo fonte da aplicacao quando houver alteracao que envolvam parametros a mais.

No caso do check acredito que possa ser agregado o retorno de erro para ser tratado pela aplicacao para dar algum tipo de informacao ao usuario/operador, apesar de eu nao conhecer muito bem esse funcionamento.

e o check tambem podera ser utilizado em conjunto com um valor padrao para o campo, se nao me engano nos exemplos de explicacao do SQL no Books On-line ele exemplifica desta forma.

Mas acho que a discursao interessante e vale a pena ser tratada, definida e alinhada com os desenvedores, de aplicacao e banco de dados.

Eh isso ai...

Espero ter contribuido. rsrsr

Abraco a todos.

Alex - Lekao

Mariana Carvalho
   - 26 out 2012

creio que certas coisas ficariam bem melhores no banco...
evitando assim problemas...

Mariana Carvalho
   - 29 out 2012

neste caso...é melhor ou não implementar???