Avatar billede jaxesvinet Nybegynder
03. februar 2004 - 10:54 Der 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.

Er der nogen der har en idé??
Avatar billede trer Nybegynder
03. februar 2004 - 11:06 #1
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?
Avatar billede jaxesvinet Nybegynder
03. februar 2004 - 11:29 #2
Okay.. jeg havde dog i tanke at bruge en ekstern webserver fra b-one og det understøtter vist ikke MS SQL. hmm ved du noget om mySQL

Nej det er meningen at én person står for opdatering af den centrale DB og at de "lokale" så bare skal opdateres ved connection..
Avatar billede trer Nybegynder
03. februar 2004 - 11:34 #3
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.
Avatar billede arne_v Ekspert
03. februar 2004 - 14:28 #4
MySQL har replikering. Læs mere her:
  http://www.mysql.com/doc/en/Replication.html
Avatar billede arne_v Ekspert
03. februar 2004 - 14:35 #5
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.
Avatar billede trer Nybegynder
03. februar 2004 - 15:01 #6
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.
Avatar billede arne_v Ekspert
03. februar 2004 - 15:12 #7
Jeg gik ud fra at database strukturen var fast. Ellers bliver det
meget hurtigt meget komplekst at opdatere.

Og ja - der er nogle data som kan drille CSV, men det er der jo også
med XML.
Avatar billede jaxesvinet Nybegynder
18. februar 2004 - 13:03 #8
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)
Avatar billede arne_v Ekspert
18. februar 2004 - 13:49 #9
Du kan jo bede os ligge svar !
Avatar billede trer Nybegynder
18. februar 2004 - 15:03 #10
Også et svar her :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester