Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renan Augusto

Usar sequence no código php ou ativá-la usando trigger

Recommended Posts

Tenho uma dúvida sobre a performance do código.

Onde é melhor usar(com nextval) uma sequence? direto no código php ou ativá-la em um trigger?

outra coisa,

Em termos de arquitetura, eu devo usar apenas uma sequence para gerenciar minhas tabelas Tx(id, descrição) ou uma sequence para cada tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende : As sequences alimentadas por trigger requerem uma leitura na tabela para que a aplicação possa "saber" seu valor, fora isto tanto faz colocar na aplicação ou direto no banco.

 

Use uma sequence para cada tabela fica mais limpo é lógico assim, do contrário as tabelas terão muitas "banguelas" nas chaves.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E tb vai muito da arquitetura... já vi sistemas em que, um usuário clica para inserir um novo registro no front-end, acaba desistindo e cancela a inclusão.

E por azar nesse caso, o desenvolvedor colocou a rotina do nextval justamente nessa ação. O que aconteceu? O usuário (sem saber, é claro) queimou uma posição da sequencia sem usá-la.

 

Isso é muito comum de se ver (eu pelo menos já vi muito) e para conter esse tipo de problema, uma trigger perdurada na tabela garantirá que a sequencia da trigger fique íntegra e só seja usada de fato quando a tabela receber uma nova linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sequence garante unicidade não integridade de sequencia, para garantir integrigade pois algumas aplicações exigem que uma numeração não tenha intervalos faltantes (apólices, nf´s etc) só uma solução via tabela e uso de transactions.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado Motta e Andre

No meu caso não vou precisar manter a sequencia apenas a unicidade então acho que vou usar no código mesmo, direto no insert.

O problema é que não estou querendo criar N sequences para as N tabelas que posso ter. Como são tabelas de apoio queria criar uma sequence para todas. Realmente os dados iriam ficar 'banguela' mas sequencia não importa! o que importa é a inicidade.

Queria saber se mesmo assim vai ficar 'feio' o sistema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renan... se você avalia que a integridade da sequência não é o problema e apenas a unicidade por sí própria já resolve, como o Motta disse, uma sequence só mata a questão.

 

Eu diria que nesse caso vai mais "do gosto do freguês" mesmo, rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.