Autore Topic: Scelta del Database  (Letto 1247 volte)

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Scelta del Database
« il: 16 Marzo 2012, 23:47:48 CET »
0
Ciao a tutti, cercherò di spiegarvi il più chiaramente possibile quello che ho in mente.
La mia applicazione gestisce professori, e ho creato un file txt, dove ho tutte le informazioni.
Ho caricato il file nella cartella RAW di android, e ogni volta che parte l'app apro questo file, e mi prendo le informazioni creando una lista di oggetti Professori. In questo modo ho sempre tutti i dati nella ram.
Io vorrei fare la stessa cosa con un database SQL, cioè avere un file, che creo con qualche programma(ho visto c'è MySQL Workbench, non conosco quali ci sono per SQLite), che è salvato in qualche cartella della mia applicazione.
Ora il mio dubbio è:
Avendo tutto nel database sql, gestisco tutto come con il txt? cioè mi prendo tutta la tabella e mi creo la mia bella lista di professori e poi lavoro sempre su questa lista nella ram, oppure consulto diverse volte il database? anche se è più lento perche accedo su memoria non ram???
E' giusto come comportamento???
grazie..


Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Scelta del Database
« Risposta #1 il: 17 Marzo 2012, 01:15:24 CET »
0
Eh la miseria e che interrogazioni complesse farai mai per necessitare si caricarti tutto già in oggetti? Tieni conto che comunque un db è molto veloce quindi io andrei decisamente di database (informazioni più ordinate) e richiamare i dati all'occorrenza

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scelta del Database
« Risposta #2 il: 17 Marzo 2012, 02:24:35 CET »
0
Beh no ho mai usato database SQL per questo chiedevo... con i file txt preferivo aprirli una volta e caricarmi tutto in oggetti, in modo da avere tutto a portata di mano.
Ora la questione è questa, devo creare il database.
L'idea è di avere nell'applicazione il database, e dare la possibilità all'utente attraverso una schermata, di aggiornare il database collegandosi ad internet, e scaricando il nuovo database aggiornato da un qualche sito.
L'utente non modifica il database, in questo caso.... mi conviene usare un database mysql o sqlite?
Ho letto che sqlite non accetta diverse cose, come i vincoli di chiave esterna, e altre cose....
mi potresti chiarire le differenze e cosa mi potrebbe essere più utile.... grazie.

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Scelta del Database
« Risposta #3 il: 17 Marzo 2012, 10:43:20 CET »
0
Per quanto riguarda i database su android la scelta è solo sqlite essendo molto molto leggero. Se vuoi utilizzare altri database come mysql devi crearti un webserver al quale interfacciarti con la tua app. Ad intuito la tua base di dati non mi sembra molto complessa se comunque riesci a gestirla con i file di testo quindi sqlite potrebbe andare bene. Certamente puoi implementare anche una procedura di aggiornamento database che come dici tu si collega ad una risorsa remota ed aggiorna il database sul device

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scelta del Database
« Risposta #4 il: 17 Marzo 2012, 11:43:32 CET »
0
Grazie, penso farò allora cosi, cioè userò per questo database SQLite.
Due cose e ho finito:
- I file txt gli posso mettere nella cartella raw di android, si può fare la stessa cosa con SQLite? cioè creare un database e salvarlo nella cartella raw, e poi mi basta dargli l'indirizzo dove si trova per prelevare le informazioni.
- Come si fa a mettere su un sito un database aggiornato, e fare che l'applicazione aggiorni il database???
Se conosci dei tutorial mi sarebbero molto utili... grazie.

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Scelta del Database
« Risposta #5 il: 17 Marzo 2012, 12:08:26 CET »
+1
Purtroppo ti posso essere poco di aiuto nello specifico perchè non ho mai usato i db su android però su questo forum nella sezione tutorial ci sono molti esempi di come usare un database come per esempio questo
http://www.anddev.it/index.php/topic,856.0.html
Poi cercando sulla rete ho trovato questo che spiega come utilizzare un db preesistente che si trova nella cartella assets dell'app (è una resource simile a raw)
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
Spero di esserti stato d'aiuto ;)

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Scelta del Database
« Risposta #6 il: 17 Marzo 2012, 12:30:56 CET »
+1
i database si possono salvare direttamente nella cartella contenente i dati dell'app(senza usare asset o raw)

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scelta del Database
« Risposta #7 il: 17 Marzo 2012, 14:01:32 CET »
0
Grazie ragazzi, ogig e domani cercherò di implementare tutto nella mia applicazione, e caso mai ho bisogno di una mano vi faccio sapere.
Grazie davvero, mi avete chiarito lei idee... ;)

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Scelta del Database
« Risposta #8 il: 17 Marzo 2012, 14:19:05 CET »
0
Grazie ragazzi, ogig e domani cercherò di implementare tutto nella mia applicazione, e caso mai ho bisogno di una mano vi faccio sapere.
Grazie davvero, mi avete chiarito lei idee... ;)

pps
visto che hai gia un file di testo potresti pensare a farti un parser che legge il file di testo e lo carica nel database..cosi quando si considera il fatto di aggiornalo.devi solo scaricare un file di testo e caricarlo :D

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scelta del Database
« Risposta #9 il: 17 Marzo 2012, 14:33:08 CET »
0
Non è male come idea, solo che siccome è un progetto per l'università in cui ci chiedono di usare un database SQL, è meglio se implemento tutto in modo "corretto".
Penso farò un metodo java che mi trasforma il file txt in un database SQLite, e poi in qualche modo lo salvo in un file, in modo che l'applicazione lo abbia di default e non debba crearlo ogni volta. Poi per quanto riguarda l'aggiornamento, sinceramente non saprei come fare...
Ci sono due cose che non so:
1- Come fare per collegare il cellulare android ad un sito dove ci sarà questo database.
2- Come modificare il database usando qualche applicazione desktop, e come identificare se un database è più aggiornato di un altro.

Per adesso comunque mi sto concentrando nella prima fase, cioè creare il database, e poi vedrò di trovare il modo per salvarlo in un file.
Poi passo alla seconda fase, cioè la parte internet...