Un'architettura di registrazione estensibile per Android?

3

L'obiettivo finale è disporre di una serie di set di dati che possono essere tracciati graficamente uno contro l'altro.

Tutti i dati devono corrispondere a una data, in modo che quando vengono tracciati l'uno contro l'altro, mostrano la relazione corretta nel tempo.

Tuttavia, la caratteristica fondamentale è quella di poter aggiungere un nuovo parametro da registrare in qualsiasi momento, che verrà quindi registrato simultaneamente e sarà quindi possibile tracciarlo su altri set di dati (dal momento in cui iniziò più tardi).

Come punto secondario, deve anche essere in grado di gestire le informazioni sparse che a volte sono disponibili e talvolta no.

Di seguito è riportato un esempio dei dati. C è un dato sparse e D è un campo dati aggiunto a metà della tabella.

Ho preso in considerazione SQLite ma il pensiero di tutte le colonne cambia a causa delle colonne aggiunte da me stesso e gli utenti non hanno fatto ricorso.

Al momento, sto pensando di creare un oggetto che tenga traccia del tempo e contenga un elenco di dati di diversi elenchi di dati come A, B, C e D come nell'immagine. Il pensiero è che per aggiungere un nuovo campo dati, potrei semplicemente aggiungere un nuovo elenco di parametri (ad es. D) all'elenco di campi dati che contiene già A, B, C.

Quindi potrei semplicemente serializzare questo in JSON per mantenerlo persistente e quando voglio tracciare grafici con dati sparsi, potrei interpolarlo.

Questa è la mia attuale soluzione, ma apprezzerei molto qualsiasi opinione su migliori pratiche o difetti nella mia attuale soluzione.

    
posta mgibson 15.10.2013 - 19:45
fonte

1 risposta

1

Ecco come mi avvicinerei a questo.

Due tabelle nel database.

1. log

[id] [timestamp] [dataset_id] [value]

  • [id] - incremento automatico
  • [timestamp] - ovvio
  • [dataset_id] - ID numerico del set di dati (correlato a datasets.id )
  • [value] - il valore numerico per il tuo grafico (o tutti questi 9, 7, 8 dal tuo disegno)

2. set di dati

[id] [name]

  • [id] - questo è dataset_id dalla tabella log . Solo un int.

  • [name] - questo è il nome del set di dati: "A", "B", "C" ecc.

Ora, quando è necessario aggiungere D , non devi aggiungere una colonna dati ovunque - solo un'altra riga per creare set di dati .

Non conosco i dettagli (come la dimensione prevista dei tuoi dati), ma non mi piace l'idea di usare JSON. Non sembra lo strumento giusto per il lavoro.

    
risposta data 15.10.2013 - 19:50
fonte

Leggi altre domande sui tag