Relacionamento de Tabelas, dúvida básica

Bom dia,

Estou modelando um banco de dados e tenho uma dúvida quanto a relacionamento de tabelas.
Imaginem a seguinte situação:
Tenho duas tabelas:

T_USER
id_user (primary key)
nome_user

T_HISTORICO
data_his
id_user (Foreign Key)
desc_his

A Tabela T_HISTORICO mantém um histórico (desc_his) das ações realizadas pelo usuário e está relacionada com T_USER pela chave estrangeira id_user.
Vamos dizer que precisei remover o usuário XYZ, mas depois gostaria de gerar um relatório com o histórico de ações de todos os usuários no mês de Janeiro.
O Usuário XYZ realizou ações no sistema no mês de Janeiro, mas já foi excluído.

Ele precisa aparecer no relatório, mas foi excluído!
Neste caso, não posso ter relacionamento entre essas tabelas?
Devo repetir TODOS os campos da tabela T_USER em T_HISTORICO para manter essas informações?

Grato.
mrbox.

Poutz… queres mostrar alguém excluído ??

Não existe isso cara, modela teu banco refletindo o mundo real… se alguém é excluído fisicamente desaparece, evapora…

o que podes fazer é criar um campo status na tabela de usuário e ao invés de excluir, desativar esse cara… Aí ele continua existindo fisicamente e o histórico pode ser ecuperado…

Falows :wink:

Na verdade a coisa é um pouco mais complexa. Eu dei esse exemplo com usuários e ações feitas por eles só pra exemplificar, mas no real não é só isso.
O que eu preciso é manter um histórico do que foi realizado.

Estive pensando em criar uma tabela com os campos que preciso manter (para efeito de relatório). Essa tabela seria alimentada a cada alteração.
Isso seria uma boa idéia?

Ah… então o que queres é um auditoria ???

Acho que ainda assim não vale a pena excluir registros de “Pessoas”, é sempre bom desativá-las ao invés de excluí-las fisicamente…

Para as demais entidades, caso haja necessidade de exclusão mesmo, podes preencher com a Descrição a tua tabela de auditoria antes de excluir… Isso tbm se for realmente auditoria…