Anderson-Alan-Sauberlich / Web-Feralten

https://www.feralten.com.br/
1 stars 0 forks source link

Risco de repetir o Indice #3

Open Anderson-Alan-Sauberlich opened 7 years ago

Anderson-Alan-Sauberlich commented 7 years ago

Para a tabela tb_peca existe uma tabela separada que armazena os ID's que foram liberados da tb_peca (id's de peças q foram deletadas). Quando uma nova Peça for cadastrada, uma function verifica se tem algum ID dentro da tabela 'tb_id_livre_peca' e se tiver pega este valor e usa como ID. Porem isso pode se tornar um pequeno gargalo e quando muitos usuários usarem o sistema ao mesmo tempo pode gerar repetimento de valor. Se dois usuários cadastrarem uma peça no mesmo milésimo de segundo, a function verificadora de ID's livres pode acabar retornando o mesmo ID "Livre" da peça para dois usuários diferentes.

Para esquivar desse problema eu pensei no seguinte:

Criar uma regra que tente cadastrar a peça 3x a 5x. Assim se da primeira vez acontecer de 2 usuários ao mesmo tempo cadastrarem e pegarem o mesmo ID livre, e o erro retornado for "DB - Repetimento de PK" então o servidor tentara executar a mesma function de novo e de novo entre 3 a 5 vezes.

Pois se o servidor tentar apenas uma vez e já retornar erro para o usuário, ele nem vai entender o que significa esta msg de erro "Código Repetido" e simplesmente vai tentar Clicar mais uma vez para tentar Cadastrar Mais uma vez, até dar certo. Então na verdade o servidor pode tentar automaticamente mais de uma vez.

Mas devemos pensar então, se isso não vai deixar o sistema lento. Pensar se não existe alguma forma mais Performática de resolver todo este problema.