Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Sequência sem lacunas em que várias transações com várias tabelas estão envolvidas


Como você já pareceu concluir, sequências sem intervalos simplesmente não escalam. Ou você corre o risco de descartar valores quando ocorre uma reversão ou tem um ponto de serialização que impedirá que um sistema de transações simultâneas multiusuário seja dimensionado. Você não pode ter os dois.

Meu pensamento seria, que tal uma ação de pós-processamento, onde todos os dias, você tem um processo que é executado no fechamento do expediente, verifica as lacunas e renumera tudo o que precisa ser renumerado?

Um pensamento final:não conheço sua exigência, mas sei que você disse que isso é "exigido por lei". Bem, pergunte a si mesmo, o que as pessoas faziam antes de haver computadores? Como esse "requisito" seria atendido? Supondo que você tenha uma pilha de formulários em branco que vêm pré-impressos com um número de "sequência" no canto superior direito? E o que acontece se alguém derramar café nesse formulário? Como isso foi tratado? Parece que você precisa de um método semelhante para lidar com isso em seu sistema.

Espero que ajude.