Domanda

Ho un'applicazione di database, voglio consentire all'utente di ripristinare i record eliminati dal database, come in Windows abbiamo il Cestino per i file. Voglio fare la stessa cosa ma per i record del database, suppongo di avere molte tabelle correlate che hanno molti campi.

Modificare:

diciamo che ho le seguenti strutture:

Tabella dei rapporti

  • Chiave primaria RepName
  • ReportData

Tabella utenti

  • Chiave primaria dell'ID
  • Nome

Tabella Rapporti utente

  • Chiave primaria RepName
  • Chiave primaria dell'ID utente
  • È eliminato

ora se inserisco il campo isdeleted nella tabella UserReports, l'utente non può aggiungere nuovamente lo stesso record se è contrassegnato come eliminato, perché il record è già presente e ciò comporterà la duplicazione.

È stato utile?

Soluzione

Nota:Utilizzo sempre la chiave primaria surrogata.

Aggiungi una colonna timestamp "deleted_at".Quando l'utente elimina la voce, inserisce l'ora corrente.Rendi questa parte fondamentale del tuo vincolo.

In ogni query ricorda di cercare solo i record che hanno null nel campo delete_at.

Alcuni framework (come ActiveRecord) lo rendono banale da fare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top