Quando preferisco un DB locale oltre la serializzazione per l'archiviazione locale dei dati?

2

Recentemente ho iniziato a sviluppare una piccola applicazione di calendario, in cui posso aggiungere e visualizzare diverse voci del calendario, che contengono diversi dati come nome, data, impostazioni di allarme e così via.

Questi valori devono essere salvati localmente, quindi l'utente può vedere le sue voci del calendario anche da sessioni precedenti.

In questo momento è stato risolto con la serializzazione, ma non sono abbastanza soddisfatto di questo, dato che l'editing dei dati serializzati può diventare piuttosto sgradevole e più materiale sto risparmiando, e penso che il processo di iterazione attraverso le voci possa anche diventare un caso per problemi di prestazioni, anche se questo molto probabilmente ha bisogno di un sacco di dati per accadere.

Recentemente ho avuto l'idea di utilizzare una tabella SQL locale con una libreria come SQLite, e penso che ciò renderebbe molto più semplice il processo di modifica dei singoli valori. Immagino anche che questa soluzione possa scalare meglio con possibili aggiunte successive.

Esiste una buona regola empirica per determinare quale tecnologia di archiviazione si dovrebbe usare? Quali sono gli alti e bassi della tecnologia comunemente usata come la serializzazione o le tabelle SQL?

    
posta Sossenbinder 26.05.2016 - 15:58
fonte

2 risposte

2

Che cosa ti dà un database locale? Integrità referenziale, atomicità e transazionalità. Guarderei un meccanismo di serializzazione per piccole applicazioni, ma non appena inizi a gestire set di dati, e in particolare quando devi aggiornare sottoinsiemi di quei dati, allora inizierei a guardare un database locale.

es. se stai cercando di salvare un albero di dati, salvare una versione serializzata potrebbe funzionare bene. Se successivamente deve salvare un sottostruttura di quell'albero e farne riferimento dall'albero originale, una soluzione di serializzazione potrebbe essere problematica (potresti salvare di nuovo l'albero intero , concesso, ma ciò potrebbe avere implicazioni sulle prestazioni). Ovviamente hai il sovraccarico di sviluppo del mapping allo schema del tuo database da prendere in considerazione.

    
risposta data 26.05.2016 - 16:21
fonte
0

Quale serializzazione porta alla festa è che rende più semplice (almeno in teoria) scambiare un DB con un altro. Facendo questo un ulteriore passo avanti, la tua app potrebbe parlare con una sorta di mid-tier che poi si interfaccia con il DB. Avere un metodo di trasferimento dati agnostico della piattaforma offre una maggiore ampiezza di opzioni su come si progettano i vari livelli.

Se sei padrone del tuo stesso destino o di un piccolo negozio di sviluppo, queste cose potrebbero non essere importanti per te, ma a livello aziendale, potrebbero.

Non dici cosa usi per la serializzazione, ma i linguaggi moderni dovrebbero renderlo abbastanza indolore. Potrebbe esserci un po 'di lavoro da fare se stai sparando payload serializzati direttamente nel DB, ma se hai un livello intermedio, puoi gestirlo con più grazia qui.

    
risposta data 26.05.2016 - 16:14
fonte

Leggi altre domande sui tag