03. februar 2004 - 10:54Der er
7 kommentarer og 3 løsninger
En online database der kan opdateres med offline når man connecte
Hej, Jeg vil lave en DB der skal ligge online på en webserver. Denne DB skal også ligge på nogle bærbare pc'er. Det er så meningen at DB'en på den bærbare PC skal opdateres ved at man forbinder til sitet og bare trykker update, således at det kun er de enkelte nye filer der bliver updatet.
Microsoft har i deres SQL Server en indbygget replikeringsløsning der giver den mulighed.
Men replikering - uanset valgt database - er ikke nemt at få til at køre stabilt. Du skal designe din database med replikering for øje og lave rutiner til at håndtere konflikter.
I din løsning vil jeg gætte på, at klienterne skal opdatere deres "lokale" database og migrere informationerne op på den centrale server og så downloade de andres opdateringer fra den centrale database?
I så fald er MySQL ok, der er dog ingen færdige replikeringsløsninger til den platform og umiddelbart har du ikke adgang til databasen eksternt fra ved B-one.
Det er dog ikke noget problem når du kun ønsker envejs kommunikation. Løsningen er, at du selv laver en webside der laver udtræk i XML som klienterne kalder. Så skal de blot fortolke XML'en og overskrive deres lokale database.
Men det er næppe den rette løsning til PC-(internet)-database/webhotel
lille database => hent "das ganze molevitten" hver gang
større database => hent incrementalt (*)
* implementeres som noget a la:
sørg for at have created og lastupdated i alle tabeller
tid = nu SELECT ... WHERE created >= sidstetid AND created < tid INSERT ... SELECT ... WHERE lastupdated >= sidstetid AND lastupdated < tid UPDATE ... sidstetid = tid
Det kræver lidt arbejde at få til at virke, men det kan lade sig gøre.
Om du vælger XML eller CSV eller et tredie format til overførsel må være hip som hap.
arne_v> nej, logshipping, som det i praksis er MySQL har, er anvendes vel mest til at sikre at en fallback server er korrekt opdateret.
Rigtig replikering giver som regel mulighed for flere servere der uafhængigt af hinanden opdateres og udveksler de opdaterede oplysninger. Et væsentligt mere komplekst setup som netop giver muligheden for konflikter...
Du har så i øvrigt ret mht incremental opdatering såfremt det er større databaser. Det vil være det mest effektive. Fordelen ved at bruge XML fremfor CSV er, at XML giver mulighed for at overføre metadata - dvs tabel strukturer, constraints, feltlængder etc - det har du ikke i CSV. CSV har derudover nogle problemer med tekster der indeholder linjeskift og andre kontrolkarakterer.
Tak for hjælpen, men jeg tror at det røg over i noget helt andet. Der er ingen svar, så jeg kan ikke rigtig give nogen point .. sorry (ellers ville jeg havde gjort det)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.