Apagar Registros ou Esconder?

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 !