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 !
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)
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.
camilogil tem esse códidgo ai ? para eu ter uma base ?
obrigado pessoal !
[quote=juniorsatanas]camilogil tem esse códidgo ai ? para eu ter uma base ?
obrigado pessoal ![/quote]
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.
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”
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.
Obrigado ai pessoal ! vou fazer aqui !