Visualizzazione multipla di un documento e persiste ogni modifica del visualizzatore in un singolo documento

1

Ho uno scenario in cui devo rendere disponibile un documento per la visualizzazione e la modifica di più utenti, gli utenti possono modificare e visualizzare il documento allo stesso tempo. Ora il problema sorge qui se per esempio l'utente A e l'utente B stanno visualizzando un documento nello stesso momento e se entrambi modificano lo stato del documento e l'utente A lo salva x istante di tempo e l'utente B lo salva in un istante di tempo in cui y > z nella dimensione temporale. Le modifiche dell'utente A saranno sovrascritte dalle modifiche apportate dall'utente B.

Possibili soluzioni che ho in mente

(1) manterrò un po ', per es. isViewedCurrently e consente solo a un singolo utente di visualizzare / modificare il documento,

(2) salva le modifiche di ogni utente separatamente e poi nomina un ruolo che le unirà modifiche (non pratiche)

per favore suggerisci qualche soluzione che posso implementare, qualcuno può spiegare come fa Google, i documenti di google sono condivisi, visualizzati e modificati da più utenti e le modifiche di ogni utente sono persistenti.

im utilizzando SQL server 2008 R2 per mantenere i dati dell'applicazione.

EDIT:

google ha implementato una superficie di modifica da zero e anche in JavaScript

link

link

    
posta dakait 16.02.2013 - 07:08
fonte

1 risposta

1

La soluzione che mi viene in mente è così:

  • Archivia il documento in un sistema di controllo della versione
  • Durante la visualizzazione, l'utente ottiene l'ultima versione a partire da quel momento
  • Durante il salvataggio, viene creata una nuova versione. Se le modifiche VCS sono state commesse nel frattempo, viene tentata un'unione automatica.
  • Se l'unione fallisce, l'utente viene avvisato che sono state apportate modifiche in conflitto e viene chiesto di risolvere i conflitti.
  • Se l'unione ha esito positivo, la versione unita viene archiviata.

Ciò presuppone che il documento sia memorizzato in un formato che consenta il confronto e l'unione.

    
risposta data 16.02.2013 - 13:55
fonte

Leggi altre domande sui tag