Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: baza danych w trybie offline
Forum PHP.pl > Forum > PHP
M4T3U5Z
Mam pytanie czy dało by się zrobić coś takiego:
Będę tworzył firmową bazę danych z klientami i ich zamówieniami, całość tylko do wglądu pracowników (4 osoby)
niektórzy z nich mają wyjazdy w egzotyczne miejsca smile.gif w których nie ma dostępu no neta

Czy dało by się tak zrobić aby cała baza zrzucała się na laptopa z którym podróżujemy (bez internetu) i działała normalnie - a po podłączeniu do neta była możliwość zapisania zmian (update zmian bazy)

Domyślam się że da się to zrobić bardziej lub mniej łopatologicznie...
oczywiście php w trybie offline odpada... więc jak? html + js ?
jak przechowywać (jaka struktura, format) taką bazę na tym komputerze offline...

niestety nie programuje zbyt biegle w językach typu visual więc nie jestem w stanie stworzyć aplikacji...
liczę więc że dało by się to jakoś przeorać js
chyba że szybciej wyjdzie douczyć się i stworzyć aplikacje exe

co radzicie?
phpion
Po pierwsze: w JS tego nie zrobisz.
Po drugie: teoretycznie jest takie coś możliwe. Całość polegałaby na wykonywaniu backupu bazy na laptopa, po czym (po powrocie z Karaibów czy skąd tam) następowałoby przywrócenie (zmodyfikowanych) danych. Problem jednak pojawiłby się w momencie gdyby 2 osoby dokonały zmian w swoich (lokalnych) wersjach bazy danych i chciały zapisać zmiany na serwerze. Wówczas: którą wersję wybrać? Drugi krytyczny przypadek: w momencie wyjazdu na serwerze baza ulega zmianom. Po powrocie pracownika zmiany są tracone przez nadpisanie ich wcześniejszymi danymi.

Można takie coś zrobić troszkę trudniej tj. zapisując datę modyfikacji danego rekordu. Wówczas, w przypadku kilku modyfikacji tego samego rekordu, należałoby wyświetlić te zmiany i wybór który wiersz powinien trafić do bazy na serwerze powinien być pozostawiony osobie kompetentej. System raczej nie będzie w stanie stwierdzić, które dane są "bardziej poprawne".
dr_bonzo
A nie moga skorzystac z netu przez GSM (gprs, edge)? Chyba najprostsze rozwiazanie. Skoro pracuja w "cywilizacji" (u klienta) to chociaz zasieg gsm musza miec.

Bo inaczej duzo roboty bedziesz mial z synchronizacja danych.
batman
Cytat(phpion @ 27.02.2009, 23:57:59 ) *
Po pierwsze: w JS tego nie zrobisz.

I tu się mylisz.
Jest takie coś Adobe AIR, w którym przy użyciu HTML + JS można tworzyć aplikacje okienkowe na desktopy. AIR obsługuje bazę danych SQLite, więc można stworzyć kopię bazy i w niej przechowywać dane offline.

Drugim rozwiązaniem jest google gears, jednak nie miałem z tym jeszcze do czynienia.

Ale i tak rozwiązanie ~dr_bonzo jest najlepsze.
M4T3U5Z
problemu z synchronizacją bazy nie będzie... bo będą tylko dodawane nowe wpisy, ale chyba rzeczywiście zamiast męczyć się zainwestuje w coś typu iplusa i po problemie...
mlattari
Przecież można na laptopach czy notebookach uruchomić np. Apache oraz serwer MySql w wersjach dla Windows i napisać prostą aplikację w php. Jeżeli będą tylko dodawane nowe rekordy to nie widzę większych trudności z przeniesieniem nowych wpisów do "głównej" bazy po powrocie pracowników :-)
WojtusJ
Tak naprawdę rozwiązań jest sporo i to jakie najlepiej wybrać ściśle zależy od specyfiki problemu. Niektóre bazy danych posiadają wersje Lite na urządzenia mobilne, np. Oracle Everyplace waży 200KB i chodzi na wszelkich symbianach, windowsach CE itp. Jednak cena jest zdecydowanie zniechęcająca.

Jeżeli to miałaby być tylko replikacja do wersji tylko do odczytu to nie powinno to stanowić wielkiego problemu. W zależności od tego jakie to są dane, można napisać prostą aplikację np. w PHP do eksportu do jakiegoś XML lub CSV i oglądać to nawet w Excelu.

Rozwiązanie z załatwieniem dostępu do internetu, jest najprostsze i najszybsze, może jednak okazać się nadmiarowe.
mlattari
A no własnie! Albo zainstalować na laptopach jedynie serwer MySql + sterownik ODBC MySql-Excel aby można było sobie wygodnie odczytywać dane.... Rzeczywiście jest mnóstwo opcji i wszystko zależy od szczegółów celu :-)
M4T3U5Z
no tak macie racje, wezmę wszystkie rady pod uwagę...
na takiej laptopowej bazie będzie wykonywanych mnóstwo zapytań... np obroty w danym okresie, spis zamówień danego klienta w danym okresie, wyszukiwanie klienta po nr tel lub innej danej... itd itp oraz dodawanie nowych zamówień...

myślę że tu najprostszym (poza kupieniem mobilnego neta) będzie Apache oraz serwer MySql...

Jeszcze raz dzięki za pomysły winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.