Como posso fazer a lixeira de reciclagem para aplicativo de banco de dados?
-
20-09-2019 - |
Pergunta
Eu tenho um aplicativo de banco de dados, quero permitir que o usuário restaure os registros excluídos do banco de dados, como no Windows, temos a lixeira para arquivos que eu quero fazer a mesma coisa, mas para registros de banco de dados, suponha que eu tenha muitas tabelas relacionadas que têm muitos campos.
Editar:
Digamos que eu tenho as seguintes estruturas:
Tabela de relatórios
- REPNAME CHAVE PRIMÁRIO
- RelatórioData
Tabela de usuários
- Id chave primária
- Nome
Tabela de userReports
- REPNAME CHAVE PRIMÁRIO
- UserID Chave primária
- Esta deletado
Agora, se eu colocar o campo ISDELETED na tabela UserReports, o usuário não poderá adicionar o mesmo registro novamente se marcado como excluído, porque o registro já é e isso fará duplicação.
Solução
Nota: Eu sempre uso a chave primária substituta.
Adicione uma coluna 'Deleted_AT' Timestamp. Quando o usuário exclui a entrada, coloque o tempo atual. Faça esta parte chave da sua restrição.
Em todas as consultas, lembre -se de pesquisar apenas registros que possuem nulo no campo Deleted_at.
Algumas estruturas (como o ActiveRecord) tornam trivial de fazer.