2008/8/14 Euler Taveira de Oliveira <[EMAIL PROTECTED]>

> Ribamar Sousa escreveu:
> > Se eu permitir que um campo que é a chave estrangeira seja nulo estou
> > quabrando a integridade, pois em sendo nulo o relacionamento já é
> > permitido (quando somente deveria ser permitido se o campo da FK fosse
> > igual ao da PK da outra).
> >
> Você não está quebrando a integridade porque a informação pode ser
> desconhecida; por outro lado, se a informação for conhecida, ela tem que
> estar de acordo com a tabela referenciada.


Me referi ao fato de em se permitindo nulo, veja o que ocorre:

clientes    produtos

codigo(pk)    codigo (pk)
nome        cod_pessoa()fk

No exemplo acima, posso cadastrar um produto sem indicar o cliente, pois a
FK permite nulo.

>
> > Em um campo de telefone, se eu aceitar nulo eu poderei tem telefones
> > duplicados. Uma saída para isso eu adotei o índice parcial (no exemplo
> > que divulguei do banco pessoa).
> >
> Ugh? Veja bem, NULL é "diferente" de NULL (na verdade, é uma expressão
> desconhecida, ou seja, NULL). Partindo dessa premissa, duas tuplas
> contendo NULL não estão duplicadas.
>

Tens razão. Todos os NULOS são nulos e aparentemente duplicados, mas como
NULL é diferente de NULL, não estão duplicados.

Mas a que eu quiz me referir com a idéia foi que isso é algo indesejável e
que sugestão contornava isso.

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

Responder a