Italian SQLite e condivisione dei dati

luke2012

Well-Known Member
Licensed User
Ciao a tutti :)

Stavo pensando ad un procedura di allineamento dei dati tra dispositivi che hanno un database SQLite alla scopo di tenere allineate alcune tabelle che vengono utilizzate per alimentare delle richieste.

Idea 1 (meno complessa) :
Si definisce un database dove vengono aggiornati i dati da condividere e viene fatto il push di questi sugli altri dispositivi che hanno l'istanza dello stesso database.

Idea 2 (molto più complessa) :
Si crea un servizio che gira sui dispositivi dove viene installata l'app in oggetto che ha il compito implementare una sorta di sincronizzazzione dei dati tra dispositivi diversi.

Quindi se abbiamo per esempio due dispositivi su cui gira la stessa app, se vengono aggiornati alcuni dati sul dispositivo A il servizio fà un push di questi sul dispositivo B.
Viceversa se sul dispositivo B vengono aggiornati alcuni dati verrà fatto il push sul dispositivo A.

In questo modo si tengono allineate le tabelle che devono essere condivise fisicamente su diversi dispositivi.
L'idea è questa, sto pensando a come implementarla nel migliore dei modi.
Qualcuno ha già avuto a che fare con questa problematica?
 

timo

Active Member
Licensed User
Ci sarebbe anche la possibilità più semplice di condividere lo stesso database tra i vari cellulari con un MySql su un server remoto. All'avvio dell'applicazione scarichi i dati da remoto e vi salvi poi le modifiche eventualmente fatte.
 

luke2012

Well-Known Member
Licensed User
Sò che esiste questa possibilità.
Ma il mio obiettivo era quello di mantenere il tutto all'interno di dispositivi android senza obbligare l'utente a mettere in piedi un pc con un database server.
Dico questo perchè il mio target di utenza può anche non saper utilizzare un pc.
 

timo

Active Member
Licensed User
Non so com'è esattamente la situazione che devi gestire, ma il database MySql lo dovresti creare tu su di un sito ad hoc e configurarlo. L'utente poi non si accorge nemmeno di cosa fa il suo programma dietro le quinte, se non notare che necessita solo di una breve connessione web.
Tieni presente che sono sempre stato un po' restio nel considerare l'utilizzo di database remoti, ma da quando ho capito che è abbastanza semplice usarli ce li metto anche nell'insalata :)
 
Last edited:

luke2012

Well-Known Member
Licensed User
Lo scenario che dovrei gestire implica che ci sia un database condiviso per ogni singolo gruppo di utenti.
Cioè la struttura del db è identica per tutti gli utenti ma ogni gruppo di utenti ha un'istanza di questo db con dei dati che possono differire dalle altre istanze.

Per esempio :

Gruppo A
Istansta A

Gruppo B
Istanza B
...........

L'unica cosa in comune è la struttura del db.
Quindi è come dire di gestire uno scenario multi cliente dove la struttura del database è condivisa ma i dati sono diversi per ogni gruppo di utenza (chiamiamolo cliente).
 

timo

Active Member
Licensed User
...........
L'unica cosa in comune è la struttura del db.
Quindi è come dire di gestire uno scenario multi cliente dove la struttura del database è condivisa ma i dati sono diversi per ogni gruppo di utenza (chiamiamolo cliente).
Se parli di ' identica struttura' suppongo che ci siano più tabelle per gruppo. Quindi, scartando la soluzione di una tabella per gruppo, non rimane che un database per ogni singolo gruppo (dal momento che i dati relazionali differiscono). Se la progettazione presenta solo questa soluzione percorribile, non ti resta che decidere se vuoi fare un'applicazione per gruppo oppure una sola applicazione per tutti e far gestire lo smistamento da php. Ma qui dovresti anche sapere se il provider accetta la gestione di dati sensibili (user/password) da remoto o meno. E' difficile comunque ragionarci solo in teoria, senza saperne di più.
 

maxware

Well-Known Member
Licensed User
Ciao Luke
Non capisco pero come / dove i vari dispositivi si allacciano per prelevare gli aggiornamenti.
E se per esempio dal dispositivo Uno duplichi il db e lo invii via mail al dispositivo Due
Scarichi il DB in allegato e lo leggi dall'APP per poi fare le dovute sincronizzazioni.
Comunque tra tutte ritengo l'idea di Timo di un Db mysql la migliore.
Anni fa feci un programma per la mia azienda per windows di gestione documentale/qualita' spalmata su 4 filiali in due regioni diverse. Vi era un db Mysql locale per ogni filiale ( per velocizzare le ricerche sulla singola filiale ) ed un db Mysql univoco per lo scambio dei dati.
ciaooooooo
Mamo
 
Top