R: R: [trashware] archivio e tracciabilita` per il trashware

Cthulhu cthulhu@rlyeh.it
Mar 12 Lug 2005 23:28:25 CEST


On Tue, Jul 12, 2005 at 03:42:06PM +0200, Monica Ferraris wrote:

> Usando le funzioni di replica dei db. Assegnando a ogni magazzino una tabella 
> a parte e gestendo le repliche dei db in maniera accorta. In questo modo, 

Scusate se mi intrometto cosi' in mezzo, ma sto seguendo questo thread a
spizzichi.

Gestire un database online con dei client offline, noi lo si e' fatto in
modo molto semplice anche con una sola tabella comune (o insieme di
tabelle collegate).

Sul database online ogni record ha un ID associato ad una sequenza che
parte da 1 e incrementa.

Sul client offline i record localmente hanno ID negativo, che parte da
-1 e decrementa.

In fase di sincronizzazione, il server che riceve i nuovi dati del
client li riprocessa per assegnare un nuovo ID positivo, quindi li
rimanda al client che a sua volta aggiorna (o reimporta tutto da zero).

I record modificati non sono mai un problema, perche' se hanno ID
positivo vengono gestiti come UPDATE, se hanno ID negativo (cioe', un
client offline lo ha creato e poi modificato) vengono gestiti comunque
come INSERT.

L'unico limite a questo sistema e' che se diversi client offline
lavorano lo stesso record, o se contemporaneamente ci si lavora da
online, vince l'ultimo che aggiorna. Problema che, se ci avessero pagato
abbastanza, si sarebbe risolto con qualche lock.

Just my 2 eurocent. :)

	intromessamente,
	    Cthulhu

-- 

http://www.rlyeh.it/



Maggiori informazioni sulla lista trashware