2008/8/13 Diogo Biazus <[EMAIL PROTECTED]>

> Acho importante observar os seguinte: Na boa modelagem nós fugimos de
> nulos, mas muitas vezes utilizamos alguns campos nulos concientemente.
> Usar nulos, como quase tudo em modelagem, tem um custo e um benefício
> que dependem do cenário onde é utilizado.
>
> Esse blablabla é para dizer o seguinte, quando o campo deve ser nulo,
> use nulo mesmo. Ou seja, colocar um campo texto como vazio '', ou usar
> informações default falsas não são uma boa estratégia. Afinal o
> significado do NULL é valor desconhecido (ou indisponível ou não
> aplicável) e quando esse for o caso devemos usar sim o NULL.
>
> E já respondendo a pergunta do Alisson, fugimos dos nulos porque ter
> esses valores desconhecidos espalhados no banco dificultam a
> manipulação dos dados, basta ver como o nulo se comporta de forma
> diferenciada em diversas operações. Além disso, muitos nulos podem
> indicar alguma modelagem mais elegante que elimina os nulos, o exemplo
> clásssico é a especialização de tabelas.
>
> Mas quando tu diz que nulo alivia a carga do banco, isso pode ser
> verdade, pois em alguns casos usamos os nulos justamente para evitar a
> criação de tabelas adicionais, evitando também junções adicionais nas
> consultas.
>
> Um caso simples onde eu uso nulos é quando tenho o campo endereço em
> uma tabela de pessoas por exemplo, e a minha regra de negócio diz que
> a informação de endereço pode ou não ser dada pelo usuário. Nesse caso
> não vejo justificativa para não permitir o nulo ou para criar outra
> tabela, ai acabo cedendo ao princípio KISS.
>
> Diogo, nunca usei, mas me parece razoável para esses casos adotar algo como
"desconhecido" e então validar com expressão regular. Aí então posso até
criar um domínio que valide bypassando o desconhecido e colocar um índice
parcial. Achei essa saída interessante e coloquei no banco pessoa, que
divulguei recentemente. Que acha?

-- 
Ribamar FS - [EMAIL PROTECTED]
http://ribafs.net
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a