Ir para conteúdo

Arquivado

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

ANDRE_ROCHA

- reservar campo no cadastro

Recommended Posts

Bom dia pessoal,Estou com um problema neste fluxo:1-Usuário insere dados de equipamento;2-Após checar os dados o usuário preenche um cadastro;3-Após preencher o cadastro o usuário escolhe de 1 a 6 strings para um ou 6 campos que são chave primária;4-Após checar se as strings escolhidas estão disponíveis, se alguma não estiver o usuário deve escolher outra;5-Se estiver tudo ok, o usuário é repassado para um ambiente de transação via cartãod e crédito;6-Após a transação ocorrer ok tudo deve ser efetivado, caso contrário descartado.Então pessoal, meu problema é no item 4, pois se o usuário demorar para concluir o cadastro algum outro usuário pode cadastrar antes dele a string que ele escolheu. Se eu mudar alguma coisa no campo do BD tipo uma reserva que não mostre a outros usuário que a string está disponível, como irei retirar esta reserva se o usuário não concluir o cadastro simplismente fechando o browser ou se faltar energia na casa dele? já tentei usar transações mas como passa por várias páginas diferentes não deu certo.Agradeço desde já a ajuda.Rocha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí galera..funciona mais ou menos quando você vai criar um email e checa a disponibilidade do login, o que acontece se outra pessoa escolher o mesmo ate o final do cadastro ou se você nao concluir o mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive este problema e acabei resolvendo da seguinte maneira, não sei se é a melhor forma mas funciona.- Criei um banco de dados de "reserva", com as informações que quero reservar. Também criei neste banco um campo com data e hora. Que é preenchido com a data e hora da inclusão do registro no banco de dados.- Na hora de consultar se o dado está disponvível o sistema verifica se o registro está criado no banco principal e/ou no reserva. Caso não esteja criado em nenhum dos dois bancos ele inclui no banco de "reserva" a informação a ser reservada. *** Com isso se um usuário tentar reservar o mesmo valor durante o cadastro do outro o sistema informa que o valor informado já está reservado.- No final da operação o sistema grava tudo no banco principal e deleta as informações do banco reserva.Bem agora o seu outro problema era se o navegador do usuário travar ou faltar luz e etc... Para isso eu uso o campo de data e hora. Sempre antes de fazer uma verificação se o registro está disponível, o sistema deleta as informações em que a Data e Hora for superior a um determinado tempo, por exemplo 15 minutos.Caso o usuário não tenha terminado o cadastro o sistema vai acabar liberando os dados reservados quando deletar as informações com tempo superior ao definido.Uma outra possíbilidade é utilizar Triggers e Procedures se você utilizar o MySQL 5.0 ou outro BD que suporte.

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.