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
  • [oracle_br] Chave Pr... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
    • [oracle_br] Re:... jlchia...@yahoo.com.br [oracle_br]
      • Re: [oracle... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
        • Re: [or... jlchia...@yahoo.com.br [oracle_br]
          • Re:... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
            • ... jlchia...@yahoo.com.br [oracle_br]
              • ... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]

Responder a