Ho letto tutte le domande SO, gli articoli di Horror Coding e ho cercato su Google il mio cervello alla ricerca dei modi migliori per controllare i dati di controllo. Funzionano tutti e tutti hanno le loro implementazioni appropriate basate su casi d'uso e così via. Quello che voglio veramente sapere è perché non è stato scritto un database per supportare nativamente la revisione a livello di dati?Dove sono tutti i database revisionati nativi?
Quello che mi lascia sconcertato è che l'API è già praticamente in atto con le transazioni. Iniziamo una transazione, cambiamo alcuni dati e commit. Anche noi stiamo autenticandoci contro il database, quindi è presente la colpa. La mia azienda memorizza le versioni di fine mese dell'intero database per scopi contabili che equivalgono ai tag. Questo non urla RCS?
La ramificazione è qualcosa che i database potrebbero trarre grandi vantaggi anche dallo schema più che dai dati. Dal momento che mi interessa davvero solo dei dati e questo aumenterebbe la difficoltà di implementazione in misura massiccia, mi limiterò a limitarmi a tag e commit.
Ora so che i database sono applicazioni incredibilmente critiche in termini di tempo, quindi qualsiasi sovraccarico non necessario è evitato nel dimenticatoio e alcuni database sono di livello epico e le revisioni esponenteranno solo tali dimensioni. Un controllo di revisione opt-in per tavolo ha indubbiamente un posto in ambienti di piccole e medie dimensioni dove ci sono millisecondi da risparmiare e la cronologia dei dati ha un certo grado di importanza. Voglio i commit, voglio i log, voglio i reverts, voglio diff, voglio dare la colpa, voglio tag e voglio checkouts. Voglio il controllo di revisione di MF-ing.
Ho una domanda da qualche parte ...
Ho eseguito il trigger route che è corretto e completamente in-application logic e funzionano entrambi, ma non so perché nessuno di questi esiste. Mi piacerebbe vedere una revisione che comprende modifiche a più di una riga e anche più di una tabella, comunque. E come ho detto questo dovrebbe essere un'aggiunta di opt-in e per-table in quanto le prestazioni sono sempre importanti. Immagino che, poiché non è possibile eseguire questa operazione su una grande distribuzione, è il motivo per cui non è mai stato implementato nei DB mainstream. Tuttavia, alcuni dei miei siti web e applicazioni più piccoli e specializzati potrebbero trarne beneficio. –