XML vs SQL per piccoli progetti?


10

Sto lavorando a un piccolo progetto che avrà un solo utente alla volta poiché è 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 biblioteca andrebbero bene in XML immagino, ma per tutto 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 avrei dovuto pubblicare questo su SO o qui, ma sembrava più appropriato qui!

Grazie in anticipo


2
"Un utente alla volta" è la parola in codice per "tra sei mesi sarà il nostro unico flusso di entrate e dovrà supportare 4.000 utenti simultanei". Pianifica di conseguenza :)
Bryan Boettcher il

Non è nemmeno necessario eseguire un servizio SQL Server, si potrebbe semplicemente trasformarlo in un database allegato se si è preoccupati di migrare da una macchina all'altra.
Peter Smith,

2
qualunque cosa tu scelga, crea uno strato di astrazione in modo da poter facilmente passare a un altro schema quando diventa necessario
maniaco del cricchetto

Risposte:


13

Se eseguirai molti IO, SQL è la scelta migliore. SQL è progettato per funzionare bene per ottenere / archiviare dati, motivo per cui lo usiamo per archiviare dati su qualcosa come un sito Web anziché XML.

XML è buono per i dati leggibili dall'uomo che possono essere condivisi e interpretati tra le applicazioni, come era sua intenzione. L'analisi XML comporta MOLTE manipolazioni di stringhe che possono essere sempre costose all'aumentare delle dimensioni del set di dati.


3
Non dimenticare la Compact Edition.
JeffO,

2

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


1

Vai con l'approccio del database. È la tecnologia collaudata per la gestione dei dati.

Per quanto riguarda il problema delle prestazioni, potresti essere in grado di accelerare l'accesso disponendo di indici, dove in XML non esiste tale mezzo.

Su un database, puoi calcolare i dati statistici usando funzioni aggregate, in XML devi codificarlo.

Usando un database, puoi cambiare la struttura del database con relativa facilità (aggiungi colonna, tabella, ecc.) E ci sono strumenti che ti aiutano a spostare i dati tra database, dove come in XML devi farlo da solo.

In un database, è possibile applicare regole di integrità e consentire agli utenti di scrivere le proprie selezioni, se necessario, non abbastanza facile in XML.

Nel database, è possibile ordinare i dati molto facilmente, inoltre è possibile aggiungere sicurezza. Usando un database, puoi dimenticare dimensioni e concorrenza, quindi in futuro la tua applicazione può crescere senza modifiche al codice.

Per quanto sopra, utilizzare un database! EK

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.