Roberto Concordo com você. A solução mais natural seria ter a chave estrangeira na própria tabela A.
[ ] André Em 15/05/07, Roberto <[EMAIL PROTECTED]> escreveu: > > Caros amigos > Tenho que tomar uma decisão de modelagem que envolve um autorelacionamento > e > gostaria de ajuda. > Tomem por exemplo uma tabela A. Nela um registro pode surgir em > decorrência > de um anteiror, na verdade um ou mais. > Assim a tabela poderia ficar da seguinte forma: > > TABELA_A > > Num_proc, origem, dpto, valor > > 1, null, DPTO1, 2040 > > 2, null, DPTO1, 3000 > > 3, null, DPTO1, 1000 > > 4, 2, DPTO2, 1500 > > 5, 2, DPTO4, 1500 > > 6, null, DPTO1, 1000 > > 7, 3, DPTO5, 1000 > > 8, 7, DPTO9, 1000 > > Como vocês podem ver, os processos 4 e 5 surgiram a partir do resultado do > 2, o processo 7 surgiu a partir do 3 e o 8 a partir do 7 > > Quero ver isso graficamente, tal como aquela janela lateral do explorer > que > mostra a hierarquia das pastas. Ficaria mais ou menos assim: > > 1 > 2-------+ > 4 > 5 > 3-------+ > 7-------+ > 8 > > Acho que posso deixar o campo origem na própria tabela A. E só com selects > poderia chegar aos pais e filhos sem problema. > Já um colega acha que seria melhor criar uma tabela, que seria uma > entidade > de relacionamento de A com A, com a seguinte estrutura: > > TABELA_A > > Num_proc, dpto, valor > > 1, DPTO1, 2040 > > 2, DPTO1, 3000 > > 3, DPTO1, 1000 > > 4, DPTO2, 1500 > > 5, DPTO4, 1500 > > 6, DPTO1, 1000 > > 7, DPTO5, 1000 > > 8, DPTO9, 1000 > > TABELA_B > > Num_proc, origem > > 4, 2 > > 5, 2 > > 7, 3 > > 8, 7 > > O que vocês acham? > O sistema sera em Java/Struts/JPA e o banco é o 8i > > Agradeço desde já a atenção de vocês > > Roberto > > > [As partes desta mensagem que não continham texto foram removidas]