I file di registro / dati dovrebbero essere memorizzati nel database? [duplicare]

3

Sto lavorando a un progetto in cui produciamo molti dati sotto forma di semplici file .txt. Questi di solito contengono una serie di colonne che verranno successivamente caricate in Matlab per essere analizzate. Ho implementato un'applicazione che utilizza un database per archiviare informazioni sulla persona che utilizza l'applicazione e dovrebbe essere in grado di associare tali informazioni ai risultati che vengono creati nei file .txt. I file sono lunghi; vicino a 10000 righe e con 3-5 colonne.

Il mio attuale design dell'applicazione mira semplicemente a collegare una query al database con il file usando un Id che funziona bene purché i file siano messi in una cartella specifica e mantenuti lì sul server in modo che il database possa sempre trovarli.

Dovrei aver progettato un modo per memorizzare le righe e le righe di dati nel database anche se sarebbero solo 100000 di numeri collegati a uno o due utenti e ID di sessione? Qual è la migliore pratica in questa situazione.

    
posta sydan 06.02.2015 - 12:41
fonte

2 risposte

1

Penso che Jon Raynor sia un buon punto per quanto riguarda la sicurezza e la coerenza dei dati in un database. Penso che un database potrebbe semplificare la gestione delle applicazioni in un modo o nell'altro (con meno file di dati di cui occuparsi, oltre a una più semplice disaster recovery o capacità di failover)

Tuttavia, non penso che sia necessario un database relazionale (come MySQL) per i dati che stai archiviando - penso che aggiungerebbe un sovraccarico di cui non hai bisogno.

Invece potresti trovare un database NoSQL, che non usa uno schema fisso più utile. Inoltre, potrebbe fornire funzionalità aggiuntive per l'utilizzo dei dati.

Un utile confronto di funzionalità è qui: link

    
risposta data 06.02.2015 - 18:50
fonte
0

Memorizzando i file sul file system c'è la possibilità che le cose non siano sincronizzate. Ad esempio, se alcuni processi rimuovono il file o se i dati non sono stati salvati nel database, potrebbero esserci dei disallineamenti. In questo caso è difficile (er) rendere la transazione atomica perché i dati sono in due fonti. Questo non è l'ideale.

Se si archiviano tutti i dati (incluso il file) nel database, la transazione avrà proprietà ACID in quanto avrà esito positivo o negativo. Si ottiene questo gratuitamente perché i sistemi RDMS sono costruiti in questo modo. Pertanto, la procedura migliore è archiviare il file nel database.

Per il secondo punto, se gli utenti hanno solo bisogno di estrarre i dati, è sufficiente archiviare il file. Tuttavia, se è necessario interrogare tutti i dati immessi dagli utenti, prenderei i dati nei file, estraili e li memorizziamo relazionalmente nel database in modo che possano essere interrogati su tutti gli utenti. Non sono esattamente sicuro dei requisiti dell'applicazione, quindi entrambi i metodi sarebbero accettabili a seconda delle esigenze dell'applicazione.

    
risposta data 06.02.2015 - 16:11
fonte

Leggi altre domande sui tag