Adam Bąk

Adam Bąk Programista

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Witam,

Chciałbym się Was poradzić, mam do napisania aplikacje do przechowywania informacje (baza MYSQL). Aplikacja będzie działała na laptopach, lecz nie zawszę laptop będzie miał dostęp do internetu i dostęp do bazy danych na serwerze. Lecz dane będą się zmieniać, pasowało by zrobić opcję aktualizuj bazę na serwerze i podczas uruchamiana aplikacji sprawdzać czy
1. jest dostęp do internetu/bazy
2. importowanie tabel

Mam pytanie: jak najlepiej zrobić import i eksport danych ? Czy zna każdym razem robić backup oraz na bazie zdalnej podmieniać ??

Wtedy trzeba było robić chyba drugą tabele która by przetrzymywała informacje datę ostatniego importu bazy.

Poproszę o sugestie.
Pozdrawiam

konto usunięte

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Troszkę za mało informacji. Metodę należy moim zdaniem dobrać w zależności od a) stopnia skomplikowania struktury bazy, b) ilości danych, c) rodzaju danych.
Ponadto - czy baza lokalna ma być kopią bazy głównej? A może ma być wykorzystywana tylko do przechowywania nowych/tworzonych danych, które po połączeniu będą mogły być wyeksportowane do bazy głównej?
Adam Bąk

Adam Bąk Programista

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Struktura bazy nie jest zbyt skomplikowana jak narazie. Są to 2-3 tabele (bez relacji ) ilość danych w sumie to nie będzie duża przypływ głownie chodzi tu o daty oraz poszczególnie informacje na temat aut w firmie. Baza lokalna ma mieć kopię bazy głównie, czasami ktoś w podróży będzie musiał z program zczytać informacje potrzebne więc musi być kopia na lokalnym komputerze.
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

A może lokalnie nie trzymać bazy (serwer MySQL na każdym laptopie to kiepskie rozwiązanie), tylko pliki z danymi na dysku w jakimś przyjaznym formacie (np. XML) i potem tylko synchronizować je z bazą? Tym bardziej że danych jest niewiele i pliki nie urosną do wielkich rozmiarów.

konto usunięte

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Ja bym w takim razie zrobił lokalną bazkę sqlite, remote postgres; synchronizacja napisana ręcznie(mało tabel), tzn. raw query do remote mod_date>poprzednia synchronizacja i odpowiednio insert/update.
Upload zmienionych offline danych trudniejszy, bo jeśli mod_date na remote > poprzednia synchronizacja, to mamy wyścig. Wówczas konieczny mechanizm rozwiązywania konfliktów.

Warto pomyśleć o triggerach ustawiających mod_date po każdej zmianie, żeby zapewnić ich aktualność.

Trzymanie danych w XML czy innym formacie - ze względu na konieczność przechowywania kopii całych danych raczej zrobiłbym drugą bazkę lokalną.
Adam Bąk

Adam Bąk Programista

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Dzięki za podpowiedz :) Wykorzystałem Bazę danych oraz synchronizację ręczną :)
Jakub Grabowski

Jakub Grabowski Tworzenie aplikacji,
integracja SOA,
outsourcing,
szkolen...

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Sybase SQLAnywhere fajnie sobie z tym radzi. Dość dawno tego używałem, więc nie wiem jak teraz z wersjami developerskimi, ale pewnie można sobie za darmo ściągnąć. Być może nawet znajdziesz coś co można używać darmowo do produkcyjnych, niedużych zastosowań.
Synchronizacja i rozwiązywanie konfliktów tak jak napisał Dariusz to nie są łatwe zagadnienia, więc może warto wykorzystać gotowe rozwiązanie.
Jakub Grabowski

Jakub Grabowski Tworzenie aplikacji,
integracja SOA,
outsourcing,
szkolen...

Temat: Aplikacja z bazą danych na komputerze + baza na serwerze...

Właśnie zauważyłem, że masz wykorzystać MySQL... Koledzy zaczęli pisać o sqlite, więc i ja poszedłem tropem proponowania innych rozwiązań ;-)
Tak czy siak, może się info o SQLAnywhere przyda, bo rozwiązanie ciekawe, choć raczej mało popularne.



Wyślij zaproszenie do