XML vs SQL per piccoli progetti?

10

Sto lavorando su un piccolo progetto che avrà un solo utente alla volta poiché si tratta di un'applicazione locale (sviluppata in WPF e C #). Per memorizzare i dati stavo pensando di utilizzare un file XML, ma mi chiedo se questo sarebbe l'approccio migliore.

A cosa servono i dati:

  • shedules
  • Libreria di file in cartelle (con nome dell'artista, titolo, posizione su HDD)
  • Probabilmente statistiche basate sui dati shedule
  • ...

Le informazioni riguardanti la libreria andrebbero bene in XML, immagino, ma per il resto non ne sono così sicuro. Anche LINQ to SQL sembra essere molto più redditizio in termini di velocità di sviluppo rispetto a LINQ to XML. È corretto o sbaglio? Non ero sicuro se dovessi postare questo su SO o qui ma sembrava più appropriato qui!

Grazie in anticipo

    
posta Citroenfris 17.08.2011 - 23:49
fonte

3 risposte

13

Se farai un sacco di IO, SQL è la tua scelta migliore. SQL è progettato per funzionare bene per ottenere / archiviare dati, motivo per cui lo utilizziamo per archiviare dati su qualcosa di simile a un sito web rispetto a XML.

L'XML fa bene a dati leggibili dall'uomo che possono essere condivisi e interpretati tra le applicazioni, come era sua intenzione. L'analisi XML comporta LOTTI di manipolazione delle stringhe che possono essere sempre costose con l'aumentare delle dimensioni del set di dati.

    
risposta data 17.08.2011 - 23:56
fonte
2

Sembra che i tuoi dati potrebbero potenzialmente crescere all'infinito (a meno che non abbia frainteso la tua applicazione). In tal caso, direi che è meglio lasciare memoria persistente fino a un motore di database per efficienza e prestazioni.

    
risposta data 17.08.2011 - 23:54
fonte
1

Vai con l'approccio del database. È la tecnologia collaudata per gestire i dati.

Per quanto riguarda il problema di prestazioni, potresti essere in grado di accelerare il tuo accesso con indici, in cui in XML non esistono tali mezzi.

Su un database, puoi calcolare i dati statistici utilizzando le funzioni di aggregazione, in XML devi codificarlo.

Usando un database, puoi cambiare la struttura del database con relativa facilità (aggiungi colonna, tabella, ecc.) e ci sono strumenti per aiutarti a spostare i dati tra i database, dove come in XML devi farlo tu stesso.

In un database, puoi applicare le regole di integrità e puoi consentire agli utenti di scrivere i propri file se necessario, non abbastanza facilmente in XML.

Nel database, puoi ordinare i dati molto facilmente, inoltre puoi aggiungere sicurezza. Utilizzando un database, puoi dimenticarti delle dimensioni e della concorrenza, quindi in futuro la tua applicazione potrà crescere senza modifiche al codice.

Per quanto sopra, usa un database! EK

    
risposta data 18.08.2011 - 00:32
fonte

Leggi altre domande sui tag