AUTO INCREMENT personalizado  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
osmio
Java Ninja

Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline

Bom dia galera.
Estou num impasse.

Tenho o seguinte problema:
Tenho uma tabela PROJETOS e outra COTACOES com relacionamento 1..n respectivamente.

A tabela cotações tem um campo que representa o ID do PROJETO e um campo CODIGO que representa o ID da cotacao para o referido projeto.

Existe alguma maneira de eu colocar um esquema de AUTO INCREMENT nesse campo, mas com a seguinte regra:

Todas as vezes que um novo ID de PROJETO for inserido na tabela COTACOES o primeiro CODIGO ser 1 e os próximos registros para esse ID de PROJETO ser números sucessivos?

Se existir algum modelo de se fazer isso programaticamente, tambem serve.

Até!

"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert
[Email]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Auto-increments e sequences têm o seguinte problema (ou solução): eles são IDs mas não têm significado nem têm o compromisso de serem contíguos ou reutilizados.

O único compromisso é que eles são seqüenciais e únicos, para poderem ser usados como "surrogate keys".

Assim você pode até ver o caso em que você pode encontrar "buracos" - você iniciou a sua base, e a "sequence" estava em 10. Quando você reiniciou o banco, em vez de ela começar de 11, ela pode muito bem começar por 20. Isso não é um bug, e sim uma otimização do seu banco.

Se você precisa de algo com significado, use um gerador de seqüências.
[WWW]
osmio
Java Ninja

Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline

thingol wrote:Auto-increments e sequences têm o seguinte problema (ou solução): eles são IDs mas não têm significado nem têm o compromisso de serem contíguos ou reutilizados.

O único compromisso é que eles são seqüenciais e únicos, para poderem ser usados como "surrogate keys".

Assim você pode até ver o caso em que você pode encontrar "buracos" - você iniciou a sua base, e a "sequence" estava em 10. Quando você reiniciou o banco, em vez de ela começar de 11, ela pode muito bem começar por 20. Isso não é um bug, e sim uma otimização do seu banco.

Se você precisa de algo com significado, use um gerador de seqüências.


Entendi...
esse campo CODIGO é mais para controle de cotacoes mesmo...

Existe algum algoritimo gerador de sequencias compilado já?

Ouvi dizer que o hibernate tem alguma coisa parecida acoplado..

Até!
[Email]
Washington Wiltenburg
JavaChild
[Avatar]

Membro desde: 04/01/2007 13:21:42
Mensagens: 120
Localização: Guarulhos - SP
Offline

Aproveitando a idéia do nosso amigo..... eu gostaria de saber tb!!!

Existe algum algoritimo gerador de sequencias compilado já?

Obrigado
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team