Apagar Registros ou Esconder?

7 respostas
juniorsatanas

Pessoal, se tratando de uma auditoria, como fica o delte e o merge ? como eu faria para o usuário apagar o registro mais ele ficar no banco ? redundante mais direto !

7 Respostas

camilogil

Na tabela de usuário, vc tem q ter um campo flag do tipo “status” e utilizar algo como:

A - Ativo
I - Inativo/Invisivel

Assim, todo usuário será sempre A, qdo alguém deletar sua conta, vc marca como I.

E sempre q for buscar por usuarios vc tem q ter um where status = ‘A’

Vc pode tmb colocar mais status, e/ou usar numero tmb (1=ativo, 0=inativo)

Fierodd

Olá
Eu conheço esse procedimento como “Exclusão lógica”, ou seja, vc marca o registro como apagado, inválido, inativo etc.

Basicamente marcando um campo flag no registro, a partir daí sua aplicação identifica que este registro não é mais válido testando esse campo.

juniorsatanas

camilogil tem esse códidgo ai ? para eu ter uma base ?

obrigado pessoal !

Jhonny_Oliveira

juniorsatanas:
camilogil tem esse códidgo ai ? para eu ter uma base ?

obrigado pessoal !

juniorsatanas

Não é necessário muito código para entender a lógica, usando a idéia de cadastros de usuários como foi dito:

select campos from tabela where status = 'A'

Neste exemplo vc estará usando o campo status como flag, os registros marcados como I não seriam retornados nesse select, simples assim.

Jair_Rillo_Junior

A exclusão lógica é usada em diversos sistemas/funcionalidades.
Não existe a forma correta de fazer, mas na grande maioria dos casos é usando uma flag (no sistema atual que eu trabalho, a gente chama o registro de “inativo”). Toda query que for ler esse registro, precisa testar se a flag é igual a “ativo”

furutani

Se os registros das suas tabelas são ligadas a outros registros por meio de foreign keys o melhor mesmo é esconder (inativar como as pessoas disseram), as vezes para apagar pode ser muito demorado para o SGDB verificar todas as restrições.

juniorsatanas

Obrigado ai pessoal ! vou fazer aqui !

Criado 2 de fevereiro de 2010
Ultima resposta 4 de fev. de 2010
Respostas 7
Participantes 6