Domanda di carattere generale: Filesystem o un database?
-
03-10-2019 - |
Domanda
Voglio creare un piccolo sistema di gestione dei documenti. Ci sono diversi utenti che memorizzano i loro file. Ogni file che viene caricato contiene informazioni su quale utente ha caricato e il contenuto del documento stesso. In una vista verranno visualizzati tutti i file di un utente specifico, ordinati per data.
Che cosa sarebbe meglio:
-
dare i documenti un nome o metadati (XML) che contengono la data e l'utente (e iterare attraverso di loro per ottenere i metadati) o ...
-
dando i file uno a caso / unico nome e memorizzare i metadati in un DB? qualcosa di simile a questo:
date | user | filename
Cosa diresti e perché? Il linguaggio di programmazione utilizzato è Java e DB è MySQL.
Soluzione
sceglierei DB. DB sono più veloci, più sicuro (non lo fai per caso eliminare file importanti) e più facile. Inoltre, questo è lo scopo di un DB: la gestione di un grande monti di dati. I filesystem sono per la memorizzazione di file.
Ma la scelta è naturalmente a voi.
Ma vi garantisco: (DB > XML) == true
in termini di prestazioni, e (DB >= XML) == false
nella dimensione del file
Altri suggerimenti
avrei scelto la seconda opzione per la conservazione dei metadati. MySQL gestire la concorrenza, e la ricerca nel DB è molto più veloce di iterare un file XML.
Quindi quello che sarebbe, se la quantità di dati è molto bassa, diciamo max. 30 file per utente, e diciamo che 20 utenti -> 600 file massima. Come giudica la soluzione per creare una cartella separata per ogni utente e dare i file un nome univoco affidamento utente? Così si può navigare througth il file system facilmente. in questo contesto, sarebbe un DB ha senso per questa bassa quantità di documenti?