Srs,
Temos o seguinte cenário:

* Relações:
    fornecedores_locais: {#id_for, nm_for ...}
    fornecedores_externos: {#id_for_e, nm_for, ds_end, ...}
    contrato: {id_for FK {id_for REF (fornecedores_locais ||
fornecedores_externos)}}

* Um contrato deve possuir fornecedores_locais ou fornecedores_externos.

<SQL>
CREATE TABLE fornecedores_i(
   id_for INTEGER PRIMARY KEY
  [...]
);
CREATE TABLE fornecedores_e(
  id_for INTEGER PRIMARY KEY
  [...]
);
CREATE TABLE contrato(
   id_for   int4  NULL REFERENCES fornecedores_i
   ,id_for_e  int4  NULL REFERENCES fornecedores_e  (???)
   [...]
);
</SQL>

* Logo, dentro do cenário exposto existiriam *sempre* atributos
contendo NULOS, uma vez que um contrato deve pertencer apenas a um
tipo de fornecedor.

* É possível omitir um dos atributos dentro deste modelo utópico ?

PS> Ok, aceito que as relações fornecedores não estão normalizadas de
acordo, porém isto é legado e continuará assim por enquanto.

Antecipadamente agradeço a atenção e colaboração.

-Leo
-- 
Leonardo Cezar, <lhcezar em hostsystems.com.br>
www.hostsystems.com.br
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a