Esiste un modello di progettazione per questo problema?

2

Ho un grande database di dati che possiamo considerare il sistema di oggi. I dati hanno un front-end Web che consente ai miei utenti di aggiornare i dati. Chiamiamo questa "soluzione originale"

Quando arrivano nuovi utenti, vengono come una serie di nuovi utenti. Questi utenti hanno bisogno dei propri dati e del proprio front-end web. Chiamiamo questa una "soluzione". Originariamente abbiamo 1 soluzione (la soluzione originale), tuttavia ora ho bisogno della stessa soluzione per un diverso gruppo di utenti.

Alcuni fattori che devono essere considerati nella progettazione:

  • La soluzione originale potrebbe scegliere di implementare altri aggiornamenti e inserimenti di soluzioni sui dati.
  • Qualsiasi soluzione può scegliere di ricevere dati aggiornati e inseriti dalla soluzione originale.
  • Gli aggiornamenti tra le soluzioni dovrebbero essere facilmente condivisibili.

Ora la soluzione più semplice sarebbe solo quella di replicare l'intero database e disporre di una sorta di processo per scrivere e leggere i dati tra le soluzioni. Ciò tuttavia ha un costo molto elevato quando si tratta di duplicare dati, esigenze di archiviazione e così via. Immagino che memorizzare una specie di delta tra i dati sarebbe meglio?

Immagino che una possibile soluzione sarebbe quella di progettare l'architettura in modo molto simile a un sistema di controllo del codice sorgente con i rami? Quando viene implementata una nuova soluzione, sostituiamo la soluzione originale. I diversi aggiornamenti nelle filiali possono essere facilmente aggiornati nel ramo principale e viceversa.

C'è qualche suggerimento su come posso facilmente clonare i dati nella soluzione originale a una nuova soluzione senza replicare il vero database? Forse un modello di progettazione che posso usare nell'implementazione?

    
posta Chris Dale 22.08.2012 - 08:56
fonte

2 risposte

3

Sembra che tu stia descrivendo un'applicazione multi-tenant.

Un'applicazione multi-tenant è un'applicazione che ha lo stesso codice ma funziona su dati diversi in base ai client registrati.

Ecco un articolo su msdn che descrive in modo approfondito: link

Non importa i riferimenti alla tecnologia MS, i principi funzionano sulla maggior parte dei principali sistemi RDBM.

    
risposta data 22.08.2012 - 10:17
fonte
2

Potresti implementare il schema di comando per gestire resp. registrare le azioni eseguite sulla soluzione originale, quindi eseguire gli stessi comandi sulle altre soluzioni.

    
risposta data 22.08.2012 - 09:02
fonte

Leggi altre domande sui tag