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
