XicoXperto Posted July 26, 2012 at 05:48 PM Report Share #470469 Posted July 26, 2012 at 05:48 PM Boas malta, Hoje venho fazer uma sondagem XD Isto é o seguinte temos: - 1 cliente - x contactos - y documentos Ok, a minha ideia para quando fazer um update às tabelas era, apagar tudo o que tinha, e voltar a inserir os dados (sejam eles novos, ou não). Pois o problema está tanto no numero de elementos (contactos e/ou documentos) e se estão (ou não) alterados. Como acredito que hajam opções mais eficazes decidi postar para saber quais as formas que a malta usa para estes casos. Não percebo muito de analises, mas acredito que existam formas que consumam menos processamento na base de dados... (no meu caso estou a trabalhar com MySQL , mas penso que a ideia seja igual para as varias BD's) Link to comment Share on other sites More sharing options...
pmg Posted July 26, 2012 at 05:51 PM Report Share #470471 Posted July 26, 2012 at 05:51 PM Eu sei que nao ajuda ... mas eu faco dessa maneira: apago tudo o que é relevante e crio novamente com as opcoes certas. Tem a vantagem do codigo ser facilimo de compreender -- principalmente olhando para o comentario 🙂 What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
XicoXperto Posted July 26, 2012 at 05:52 PM Author Report Share #470472 Posted July 26, 2012 at 05:52 PM Pois, é exactamente o que eu faço, mas não sei se há ideias melhores, acredito que sim, mas se calhar a malta faz sempre dessa maneira... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 26, 2012 at 05:56 PM Report Share #470473 Posted July 26, 2012 at 05:56 PM apagar tudo o que tinha, e voltar a inserir os dados (sejam eles novos, ou não). tens a noção que isso não teoricamente correto por que estás a remover relações que na realidade não são para remover (mesmo que mais a frente as vás adicionar novamente) e que tal assim $lista_a_atualizar; $lista_na_bd; // preencher o array $lista_a_atualizar com os dados do pedido/request // o preenchimento deverá seguir a norma // id do registo => lista de valores ... // ler os registos na base de dados para a $lista_na_bd; // o preenchimento deverá seguir a norma // id do registo => lista de valores ... // processar os registos a serem criados/atualizados foreach ($lista_a_atualizar as $id => $valores) { if (array_key_exists($lista_na_bd, $id)) { // actualizar registo ... // remover da $lista_na_bd unset($lista_na_bd[$id]); } else { // criar registo ... } } // o que sobra na lista $lista_na_bd são os registos a serem removidos foreach ($lista_na_bd as $id => $valores) { // remove da base de dados ... } 2 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
XicoXperto Posted July 26, 2012 at 06:00 PM Author Report Share #470474 Posted July 26, 2012 at 06:00 PM Muito interessante esse método... 👍 Link to comment Share on other sites More sharing options...
M6 Posted August 3, 2012 at 02:34 PM Report Share #471392 Posted August 3, 2012 at 02:34 PM Se bem percebi necessitas de um timestamp com a data de atualização de cada row para saber se a mesma deverá ou não ser atualizada. É isso? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
XicoXperto Posted August 3, 2012 at 03:58 PM Author Report Share #471397 Posted August 3, 2012 at 03:58 PM Isso não iria funcionar (pelo menos no meu caso) porque quando o utilizador pretender editar os dados, são todos carregados de novo para o browser, e após isso o utilizador pode, manter, alterar, remover ou adicionar elementos. O timestamp seria sempre actualizado, não é? E depois haveria o problema dos novos e dos removidos e ainda teria que adicionar a cada tabela onde isso acontece mais uma coluna. A ideia do HappyHippyHippo foi bastante interessante, tal que eu estava a usar o outro metodo de apagar tudo e voltar a inserir, e realmente este método funcionou perfeitamente... Tem mais linhas de código, mas imagino que a performance seja melhor... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now