Domanda

I sviluppare un app con componenti sia thick-client e thin client. Abbiamo anche la versione nostro database in modo tale che le modifiche dello schema comportare il loro proprio numero di versione e modificare gli script può essere applicata. modifiche al database, tuttavia, non si verificano sempre al passo con i cambiamenti thick client. Sì, il cambiamento di database di oggi potrebbe aggiungere una colonna e comporterà una nel thick client, ma il cambiamento del database di domani potrebbe correggere un errore in una stored procedure che non richiede alcuna modifica esterni. Come posso codificare il thick-client per verificare se sia compatibile con una versione specifica database quando alcuni sono compatibili e alcuni non lo sono?

Nella anche che chiunque si prende cura, la nostra è un'applicazione .NET integrazione con SQL Server, ma questo mi sembra più di una domanda delle versioni di una domanda piattaforma. A meno che non v'è una soluzione specifica piattaforma di ...

È stato utile?

Soluzione

È possibile creare una tabella, es. metadati con due colonne di stringa, e messo lì una voce (o più voci) con la versione corrente dello schema. Suppongo che si fa qualcosa di simile ora.

e dividere la versione a due numeri (come schema di maggiore / minore). Quando si modifica lo schema in modo non compatibile all'indietro allora si increse la versione principale. Dopo il cambio compatibile con le versioni precedenti è sufficiente aggiornare la versione minore.

Maggiore è utilizzata da app per verificare se è compatibile con lo schema corrente e maggiore minore + viene utilizzata per verificare se è possibile / necessità di aggiornare lo schema.

Penso che questa sia la soluzione che viene utilizzato dalla maggior parte delle applicazioni.

Altri suggerimenti

Potrebbe adottare una grande schema minore / numero di versione?

Un cambio di numero maggiore implica che i clienti devono essere aggiornate, e il cambiamento nel numero di minori non lo fa.

Con uno di questi, i numeri di versione sono sempre in aumento.

Se il database conosce la versione minima del client che richiede, e il client conosce la versione minima del database richiede, si tratta di un semplice controllo per determinare ciò che deve aggiornare (se non altro) - ora se si incapsulare la logica in una stored procedure , o nel codice, questa è la vostra decisione ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top