Fórum Excluir registro ou ocultar #484211
01/07/2014
0
Estou com uma dúvida de análise de um sistema que estamos desenvolvendo na empresa onde trabalho. Estamos criando um portal de notícias que provavelmente terá dezenas de acessos diários e um grande volume de dados.
Conversando com alguns amigos administradores de banco de dados, sobre boas práticas de modelagem de banco de dados, um deles me disse que "não é correto excluir registros de uma aplicação, devido a questões de segurança, integridade e histórico das informações", pesquisei em alguns fóruns a respeito do assunto e vi um post confirmando essa afirmação.
A minha dúvida é: No meu caso onde terei um fluxo de dados muito grande e um número de acesso alto, é viável ocultar um registro no banco de dados, usando por exemplo uma coluna "_excluido" e um valor booleano "true" para manter o registro ou seria melhor excluir "fisicamente" o registro do bando de dados? o Quanto isso implicaria na performance das consultas ? ocultar o registro é realmente uma boa prática ou depende do caso ?
Obrigado, espero que alguém possa me ajudar :)
Leandro Silva
Curtir tópico
+ 0Post mais votado
01/07/2014
Em relação à integridade, se o banco estiver bem feito o próprio banco vai impedir a exclusão de um registro se o mesmo estiver com outra referência, quanto ocultar o registro nas suas consultas você vai considera apenas o que não estiver com o status de oculto, portanto não vai mudar muita coisa.
Itamar Souza
Gostei + 1
Mais Posts
01/07/2014
Edinei Steffen
Não existe a possibilidade ocultar um registro do banco de dado, o banco de dados é o ponto inicial dos dados. Vc pode utilizar flags para ocultar os registro da tua aplicação, otimizando as SQL que buscam estas informações do Banco de Dados.
Ai isso sim implica diretamente nas performances das SQLs, resgatar blocos de registros é muito mais rápido do que buscar sempre todos os registros.
Outro detalhe, quanto mais vc conseguir explorar o uso de SQLs bem elaborados mais rápido vai ficar a tua aplicação.
Outra opção que diz respeito a performance em banco de dados é a utilização de índices para os campos mais acessados das tabelas, geralmente não é notada diference com 100 ou 1000 registros, mas quando o banco começa a ter mais de 10.000 ou 1.000.000 ai sim é bem perceptível.
Cara, poderia elencar diversos outros fatos para garantir performance em Banco de Dados, mas vou colocar algumas palavras chaves aqui e se vc usar algo relacionado com elas vc vai saber que vai impactar em performance (TRIGGERS, FUNCTION, VIEWS, PROCEDURES, INNER JOIN, INDEX... etc). Quando mais estratificado vc conseguir resgatar os registros do Banco de Dados, mais rápido vai ser a sua aplicação, pois ela vai precisar processar menos, isso é quase um conceito de processamento distribuído...
Aproveite esta faze de análise do banco de dados que ela é muito importante e pode ajudar muito a tua aplicação.
Bom trabalho
Gostei + 1
01/07/2014
Leandro Silva
A minha ideia era realmente criar uma flag na tabela de notícias da minha base de dados, para mante-lo "oculto" de forma que seja possível recupera-lo facilmente em caso de um usuário excluir o registro acidentalmente, porém esses dados vão gerar um volume morto de informação que vai aumentar consideravelmente o tamanho da base de dados, por isso fiquei na dúvida de manter ou não esses dados.
Gostei + 0
05/07/2014
Ronaldo Lanhellas
Gostei + 1
05/07/2014
Ronaldo Lanhellas
1 - criar uma tabela auxiliar (com a mesma estrutura da tabela original, vamos chamar de tb_backup).
2- copiar para lá todas os dados que você iria excluir.
3 - Excluir os dados antigos da tabela original
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)