Forum Pplware
php + phpMyAdmin - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: php + phpMyAdmin (/showthread.php?tid=13170)



php + phpMyAdmin - ftpaul - 18-11-2012 14:39

Boas,

Estou a fazer um sistema de gestão de sócios em php + phpMyAdmin, baseia-se em basicamente inserir e editar dados de tabelas. No entanto não sei é necessário fazer algum tipo de gestão para o caso de estarem duas pessoas a inserirem na mesma tabela ao mesmo tempo. Alguém me pode dar uma luzes sobre isto?

Saudações Geeks Wink


RE: php + phpMyAdmin - joazito - 19-11-2012 10:49

Deves querer dizer PHP + MySQL, certo? O phpMyAdmin é só uma ferramenta para mexer na base de dados.

Fazes uma boa pergunta. Dependendo da tua aplicação, é possível que haja problemas se duas pessoas tentarem modificar dados concorrentemente. A base de dados em si não dá problemas, o problema é se a pessoa A tenta incrementar um registo em 10€ enquanto a pessoa B tenta fazer o mesmo, e por coincidência fazem ambos a leitura antes de qualquer uma escrever - o registo vai ter 10€ a mais em vez dos 20€ que era suposto, já que a segunda escrita vai anular a primeira.

Agora tu é que sabes se situações destas podem ocorrer. Se sim, tens de usar transacções.


RE: php + phpMyAdmin - progster - 19-11-2012 11:19

Tens de criar um sistema de logins.


RE: php + phpMyAdmin - Bruno Bernardino - 19-11-2012 12:12

Inserção ao mesmo tempo não tem problema. O que pode ser problemático é editarem o mesmo row ao mesmo tempo, no entanto não sei se editar o phpMyAdmin para isso será a melhor opção, já que o phpMyAdmin é "genérico" (para qualquer BD), e tu queres algo para um caso específico.

De qualquer das formas, se não for para gerir mais nada e servir perfeitamente, não é complicado alterar o phpMyAdmin.


RE: php + phpMyAdmin - ftpaul - 19-11-2012 12:37

Também tem um sistema de logins, esqueci-me de referir isso.
Em relação a editar a mesma linha ao mesmo tempo será só por acidente.
Obrigado,


RE: php + phpMyAdmin - aflores2010 - 19-11-2012 20:52

(19-11-2012 12:37)ftpaul Escreveu:  Também tem um sistema de logins, esqueci-me de referir isso.
Em relação a editar a mesma linha ao mesmo tempo será só por acidente.
Obrigado,

Programming is like sex: one mistake and you're providing support for a lifetime.

imagina que não tens apenas duas pessoas a fazer isso. em vez de apenas 10€ e durante por exemplo duas semanas. em vez de lucro terás prejuízo.


RE: php + phpMyAdmin - RaCcOn - 20-11-2012 00:06

Basta que não permitas que seja aberto ou editado um sócio enquanto o outro estiver aberto...

vejamos...

Crias um novo campo na tablela de sócio onde vais chamar locked e outro campo para a data e hora do lock.

Quando alguém clica em editar info, ele altera esse valor para 1, ou seja locked e coloca a data e hora do lock.

Defines que o lock poderá durar no máximo 5 minutos por exemplo...

Agora tens duas hipoteses...

Quando alguém tenta fazer o edit, validas quanto tempo tem o lock (se existir) se for inferior a 5min ele bloqueia, caso seja superior altera a data do lock para a nova data.
Outra das hipoteses é correres um cronjob de 5 em 5 minutos no servidor que vai verificar se existem locks com mais de 5 minutos, caso afirmativo limpa-os.

se o problema está nos valores de conta de sócio nem necessitas disso, um extrato de positivos/negativos...e adicionas um total que é calculado no momento do save.

Ora, quando clico em guardar movimento ele verifica qual é o saldo actual e guarda...nada como veres qual a melhor solução e adaptares ao teu caso em especifico.