Blz ? Então, primeira coisa se na tabela-pai a PK é CNPJ, para que a nova tabela seja considerada FILHA da tabela-pai ela TEM que ter essa mesma coluna CNPJ criada como FK e apontando pra PK da tabela pai, okdoc ?? A PK da tabela-filha não importa pra essa funcionalidade... Muito bem : isso dito,antes de discutirmos questões de acesso , índices, e etc, plz ENTENDA que vc tem duas situações COMPLETAMENTE DIFERENTES aí!! A contraint PK composta indica que qquer um dos valores (ou uma combinação de todos exceto um) pode SIM se repetir nos outros registros, o que não pode é duplicar TODOS da chave.... No seu exemplo, se vc tiver a PK composta criada como CNPJ + FABRICA + LOCAL ENTREGA + DOCA + TIPO PROGRAMA, isso quer dizer (por exemplo) que UM local de entrega pode ter N docas pra mesma fabrica e mesmo CNPJ, tipo : |CNPJ |Fabrica|Local entrega|Doca|Tipo programa| |53.358.644/0001-12|FAB01 |BRAS |D10 | TIPO1 | |53.358.644/0001-12|FAB01 |VILA CARRAO |D10 | TIPO1 | ==> OU SEJA, os dois registros acima tão válidos porque NÂO FORAM TODOS OS CAMPOS DA PK COMPOSTA que se REPETIRAM....
Agora, se vc criar uma constraint UNIQUE separada pra cada coluna, isso indica que NA TABELA TODA, independente de qquer coisa, a coluna UNIQUE só poderá ter um valor.... Imagine que a PK foi criada como CNPJ + SEQUENCIA como vc propôs, e que as colunas FABRICA , LOCAL ENTREGA , DOCA e TIPO PROGRAMA cada uma tem a sua UNIQUE KEY própria : suponha que eu tenho a mesma situação acima, e inseri pro CNPJ 53.358.644/0001-12 inseri o registro : |CNPJ |Fabrica|Local entrega|Doca|Tipo programa| |53.358.644/0001-12|FAB01 |BRAS |D10 | TIPO1 | ==> Se eu tentar gravar (prum outro CNPJ ou pro mesmo com outra sequência, tantofaz) um outro registro para (digamos) LOCAL DE ENTREGA = BRAS kaput, a constraint UNIQUE do LOCAL DE ENTREGA ** não vai me deixar ** fazer isso... Com as constraints UNIQUE separadas, isso significa que NENHUM OUTRO CNPJ poderia ter a fábrica FAB01, ou o local de entrega BRAS ou a doca D10 !!! É isso que significa uma constraint UNIQUE particular pra cada coluna... Faz sentido isso na sua modelagem ?? Ou seja, essas duas construções ** ABSOLUTAMENTE NÃO SÃO ** duas maneiras de fazer a mesma coisa, como vc parece dar a entender : na verdade são coisas COMPLETAMENTE DIFERENTES, são Validações feitas de maneira completamente DIFERENTE, okdoc ??? []s Chiappa