Sto cercando di pensare al modo migliore per archiviare i dati storici per la mia applicazione web. L'applicazione ha utenti che aggiungono foto, commentano e li classificano. Tutto questo è memorizzato nel database relazionale.
Gli utenti hanno anche la possibilità di eliminare le proprie foto (e quindi commenti / voti) e il proprio account.
Voglio memorizzare quelle entità cancellate come dati storici. Lo scopo è di distinguere le categorie di ciò che le persone amano fotografare e classificare gli utenti verso quelle categorie .
Dovrei memorizzarlo in qualche database NoSQL? O forse nel mio database di origine contrassegnandolo con il campo is_deleted
? Forse una tabella diversa, ad es. archived_users
, archived_photos
? Un'altra istanza di database per soli dati storici?
Qualcuno ha affrontato tale compito ed è disposto a condividere pensieri?
Finora, sto usando is_deleted
flag per le foto e la tabella di backup ( archived_users
) per gli utenti. Perché questa distinzione? Per evitare di violare il limite unique
sul campo username
.
Questa soluzione ha 3 problemi per me.
- È incoerente fare la stessa cosa in 2 modi. O forse è ok?
- È in qualche modo strano spostare
user
in un'altra tabella (con associazioni alle foto). Crea alcuni campi superficiali. O forse è ok? - I dati "viventi" sono mescolati con dati storici. Potrebbe essere un problema di prestazioni quando il database è davvero enorme?