Potrebbe non essere chiaro, quindi svilupperò l'idea:
Il punto è sviluppare un'interfaccia web per scrivere note (e qualsiasi cosa tu voglia) e tracciare la sua evoluzione. La mia domanda è quindi: come posso memorizzare tali informazioni in modo tale da poter anche tenere traccia della cronologia delle modifiche?
Nel mondo dei database relazionali sarebbe idealmente simile:
Tabella documento : | docId | authId | content | <meta> |
Tabella documentHist : | docId | editDate | <data> |
La domanda riguarda cosa memorizzare come documentHist.<data>
. Devo memorizzare qui tutte le revisioni (facile ma enorme replica)? O dovrei memorizzare solo le differenze? (più intelligente, ma non vedo come potrei fare questo (senza implementare un tipo di sistema di versionamento da solo).
Ecco perché in precedenza ho menzionato Git, e ancora più Github che lo fanno precisamente: puoi modificare file e commit. Potremmo quindi usare qui Git "under the hood" per il nostro versioning. Non sono sicuro di quanto sarebbe difficile. (Seleziona / Aggiorna & co mi sembra più facile gestire i file e il comando git dal server web, forse sbaglio)
Grazie per qualsiasi commento, idea o idea. Forse ho una conoscenza minuscola o errata, non esitare a farlo notare. (lo stesso vale per l'errore linguistico, non sono EN nativo come forse avrai notato)
pltrdy
Modifica note:
-
La cronologia non è un backup: il mio punto non è quello di creare i backup del database, ma di essere in grado di interrogare / lavorare con la cronologia delle modifiche (ad es. utente quando / quale era l'ultima modifica, quando è stata aggiunta la riga questa ecc ...
-
Documenti: Per documento non parlo (necessariamente) di file su un file system. Potrebbe semplicemente essere registrato in un database (potremmo immaginare 1 tabella per il contenuto corrente di "documento" e 1 per la sua cronologia)
-
Volume e amp; Obiettivi: mirano a sviluppare un tale sistema per le esigenze personali, ma con un design scalabile. Altrimenti userei semplicemente Git. Il punto è dare un'interfaccia wbe per scrivere note e tenere traccia delle evoluzioni (tra le altre caratteristiche)