[sapl-dev] Integridade referencial do Banco de Dados do SAPL
sergiodamiati
sergiodamiati em camaracampinas.sp.gov.br
Terça Setembro 25 17:24:40 BRT 2012
Cabe lembrar que o acesso a tabelas InnoDB é mais lento e perderemos
performance, e elas também não suportam Pesquisas FullText usadas no Sapl.
[]s
Sérgio Damiati
Em 25-09-2012 17:03, Luciano De Fazio escreveu:
>
> Concordo tb, mas lembro novamente que tabelas MyISAM nao tem suporte a
> integridade.
> Alguem vai ter de refazer as tabelas como InnoDB e criar um script de
> conversao.
> Como nao se mexe no banco dentro da versao estavel, isso tera que
> ficar pra proxima.
> Por enquanto, validar por aplicacao eh a unica alternativa viavel.
> Luciano De Fazio
>
> Em 25/09/2012 16:34, "Gustavo Lepri" <gustavolepri em gmail.com
> <mailto:gustavolepri em gmail.com>> escreveu:
>
> Fabiano,
>
> Eu também concordo com você sobre a integradidade ser toda feita
> no banco e não na aplicação.
>
> +1 para essa alteração!
>
> Gustavo Lepri
>
> Em 25 de setembro de 2012 14:27, Angelo Marcondes de Oliveira Neto
> <angelomarcondes em gmail.com <mailto:angelomarcondes em gmail.com>>
> escreveu:
>
> Fabiano,
>
> Bem, vou estudar alternativa ao relacionamento no BD e ver se
> consigo apresentar algo também.
>
> Abraços
>
> UaiGeek - Angelo Marcondes de Oliveira Neto.
> <mailto:angelomarcondes em gmail.com>
> #votoemmongaba
> Blog do UaiGeek <http://uaigeek.blogspot.com>
> Carneirinho - MG <http://pt.wikipedia.org/wiki/Carneirinho>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - - - - - - -
> P: Por que esta mensagem é tão curta?
> R: http://3frases.efetividade.net
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - - - - - - -
>
>
>
> Em 25 de setembro de 2012 14:09, Fabiano Weimar dos Santos
> <xirumacanudo em gmail.com <mailto:xirumacanudo em gmail.com>>
> escreveu:
>
> Oi Pessoal,
>
> nada contra seu código Angelo, mas eu acredito que tentar
> garantir a
> integridade relacional usando código na camada de
> aplicacao é errado.
> Integridade relacional é uma tarefa da camada de banco de
> dados.
>
> A resposta a sua questão é: todos concordam comigo?
>
> Eu acho essa estratégia de "flag" para registro excluido
> errada
> também. Se isso é importante, ou seja, o ato de excluir
> manter uma
> copia dos dados apagados para posterior inspeção manual,
> pq então não
> fazemos isso utilizando a estratégia de banco de dados
> versionado que
> adotei no spdo. Infelizmente o codigo que utilizei la nao
> serviria
> para o sapl, mas a ideia me parece fazer mais sentido.
>
> Se houver interesse em atacar essa questao, primeiro
> define-se a
> abordagem (se vamos fazer isso usando código no zope ou usando
> constraints no banco de dados) e depois debates os
> detalhes técnicos.
>
> Minha opniao tecnica pessoal já conhece ;)
>
> -- Fabiano Weimar
>
> Em 25 de setembro de 2012 12:11, Angelo Marcondes de
> Oliveira Neto
> <angelomarcondes em gmail.com
> <mailto:angelomarcondes em gmail.com>> escreveu:
> > Amigos,
> >
> > Estou preocupado com a integridade referencial dos banco
> de dados do SAPL e
> > por isso estou lhes escrevendo, com objetivo de
> discutirmos qual a melhor
> > maneira de evitar que existam quebras de referências,
> seguindo a linha de
> > uma discussão iniciada pelo Xiru e pelo Damiatti,
> anteriormente.
> > Abaixo, segue uma proposta de código para verificar a
> integridade, antes da
> > exclusão do parlamentar, ou seja do formulário
> > parlamentar_excluir_proc.dtml.
> > Gostaria da analise de todos, e saber se esta é a melhor
> opção no momento e
> > se posso trabalhar neste sentido.
> >
> >
> > <dtml-comment>
> >
> *****************************************************************
> > * Função: Esse método apenas chama o Método SQL de
> exclusão do*
> > * parlamentar, isto é, o método que atribui a
> verdadeiro o*
> > * campo ind_excluido do parlamentar cujo o
> cod_parlamentar*
> > * é recebido. *
> > * Argumentos: cod_parlamentar : int - o código do
> parlamentar *
> > * a ser escluído. *
> > * Retorno: Atribuição do flag ind_excluido do
> parlamentar e *
> > * redirecionamento para a página de parlamentares.
> *
> > * Michael S. Onishi / Daniel C. Azevedo em 01-03-2001.
> *
> >
> *****************************************************************
> > * UPDATE *
> > * Ao se excluir um parlamentar, alteramos o índice da
> tabela *
> > * com o autor correspondente (ind_excluido=1)
> representado a *
> > * exclusão desse relacionamento, além da exclusão, se
> houver, *
> > * do username cadastrado no acl_user como login.
> *
> > * Rogério Ueda em 18-12-2003 *
> >
> *****************************************************************
> > </dtml-comment>
> >
> > <dtml-if
> >
> expr="zsql.composicao_comissao_obter_zsql(cod_parlamentar=cod_parlamentar)">
> > <dtml-let mensagem="'Parlamentar está cadastro como
> membro de
> > comissão(ões) e não pode ser excluído!'">
> > <dtml-var mensagem_emitir>
> > </dtml-let>
> > <dtml-elif
> >
> expr="zsql.composicao_mesa_obter_zsql(cod_parlamentar=cod_parlamentar)">
> > <dtml-let mensagem="'Parlmentar está cadastrado como
> membro de mesa
> > diretora e não pode ser excluído'">i
> > <dtml-var mensagem_emitir>
> > </dtml-let>
> > <dtml-elif
> >
> expr="zsql.composicao_mesa_sessao_obter_zsql(cod_parlamentar=cod_parlamentar)">
> > <dtml-let mensagem="'Parlmentar está cadastrado como
> membro de mesa
> > diretora de sessão plenária e não pode ser excluído'">i
> > <dtml-var mensagem_emitir>
> > </dtml-let>
> >
> >
> > <dtml-else>
> > <dtml-try>
> > <dtml-call
> >
> expr="zsql.parlamentar_excluir_zsql(cod_parlamentar=cod_parlamentar)">
> > <dtml-except>
> > <dtml-let mensagem="'Houve um erro! Parlamentar não
> excluído!'">
> > <dtml-var mensagem_emitir>
> > </dtml-let>
> > <dtml-call expr="REQUEST.set('erro', 1)">
> > </dtml-try>
> >
> > <dtml-unless erro>
> > <dtml-try>
> > <dtml-in
> expr="zsql.autor_obter_zsql(cod_parlamentar=cod_parlamentar)">
> > <dtml-call
> expr="zsql.autor_excluir_zsql(cod_autor)">
> > <dtml-call
> expr="pysc.username_excluir_pysc(username=col_username)">
> > </dtml-in>
> > <dtml-except>
> > <dtml-let mensagem="'Parlamentar Excluído com
> Sucesso!<BR>Houve um
> > erro! Autor Não Excluído!'">
> > <dtml-var mensagem_emitir>
> > </dtml-let>
> > <dtml-else>
> > <dtml-let mensagem="'Parlamentar Excluído com
> Sucesso!'" sucesso="1">
> > <dtml-var mensagem_emitir>
> > </dtml-let>
> > </dtml-try>
> >
> > </dtml-unless>
> >
> > </dtml-if>
> >
> >
> >
> >
> > UaiGeek - Angelo Marcondes de Oliveira Neto.
> > #votoemmongaba
> > Blog do UaiGeek
> > Carneirinho - MG
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - - - -
> > - - - - - -
> > P: Por que esta mensagem é tão curta?
> > R: http://3frases.efetividade.net
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - - - -
> > - - - - - -
> >
> >
> > --
> > Wiki do SAPL:
> > http://colab.interlegis.gov.br/wiki/ProjetoSapl
> >
> > Regras de participação:
> > http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
> >
> > Para administrar sua conta visite:
> > http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>
>
>
> --
> Interessado em meus Cursos e Palestras? Inscreva-se em:
> https://groups.google.com/d/forum/cursos-do-xiru?hl=pt-BR
>
> Fabiano Weimar dos Santos @xiru
> http://blog.xiru.org
> http://www.pytown.com
> --
> Wiki do SAPL:
> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>
> Regras de participação:
> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>
> Para administrar sua conta visite:
> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>
>
>
> --
> Wiki do SAPL:
> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>
> Regras de participação:
> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>
> Para administrar sua conta visite:
> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>
>
>
>
> --
> Gustavo Lepri
>
> --
> Wiki do SAPL:
> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>
> Regras de participação:
> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>
> Para administrar sua conta visite:
> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.interlegis.gov.br/pipermail/sapl-dev/attachments/20120925/09851ace/attachment.htm
Mais detalhes sobre a lista de discussão SAPL-dev