Salva i dettagli della partita su SQLite o XML? [duplicare]

1

Sto creando un sistema (concettuale) per simulare qualsiasi tipo di partita sportiva (come calcio, pallacanestro, ecc.) con azioni (ad esempio pass, pass, out, pass, score) quindi sarà come un vero report . Le statistiche principali (tempo di riproduzione, numero di azioni, ecc.) Sto salvando su un database MySQL, ma il report stesso può contenere più di 1000 azioni per partita.

Per evitare milioni di record nel mio database, sto pensando di salvare il rapporto dettagliato in un database SQLite o in un file XML. Per ogni partita giocata, verrà creato un file. Quando un utente richiede i dettagli della partita, leggo il file per i dettagli.

Qual è la scelta migliore per questo scopo? SQLite o XML?

    
posta trizz 13.06.2012 - 10:02
fonte

2 risposte

4

La cosa con i database è, sono costruiti per memorizzare milioni di record . A meno che tu non abbia una buona ragione per non farlo, la soluzione più semplice sarebbe ... memorizzare informazioni di corrispondenza dettagliate nel database MySQL stesso.

SQLite è probabilmente una buona opzione se l'applicazione non ha bisogno di un unico database globale, ma invece si trova su archivi di dati locali (che non sembra essere il caso). Qualcosa come la configurazione dell'applicazione, le impostazioni dell'utente locale o i dati privati. Essendo database anche SQLite è anche bravo a memorizzare milioni di record . Se lo desideri, potresti anche eseguire la migrazione dell'intera cosa a SQLite.

Infine, consiglierei di non memorizzare i dati delle partite in XML. I file XML di solito impiegano più tempo per essere elaborati (ma sono più user-friendly), ma in realtà sono spesso usati per generare report store . Tuttavia, tali rapporti si basano su alcuni dati esistenti - nel tuo caso si tratta di dettagli di corrispondenza, che devono essere memorizzati da qualche parte. Generare report XML da dati in XML non sembra davvero cosa da fare, quindi il mio consiglio.

Inoltre, l'uso del database come memoria (al contrario del file XML) ti consentirà di generare facilmente contenuti diversi dagli stessi dati. Ora vuoi rapporti - bene, questo può essere facilmente costruito (anche in file XML) usando il contenuto memorizzato nel database. In seguito potresti aver bisogno di un rapporto abbreviato, o solo di un rapporto dei primi 15 minuti, o di una divisione a metà, qualsiasi cosa. Potrebbe essere più facile costruire quelle cose usando i dati dal database, piuttosto che in XML. Pensa a un XML in questo caso come prodotto finale (rapporto per utente), mentre le righe di database non elaborate - qualcosa che ti consente di creare quei prodotti finali.

    
risposta data 13.06.2012 - 12:51
fonte
2

Quando i dati che vengono generati devono essere ulteriormente elaborati o utilizzati come dati (ad esempio per più report o presentazioni), quindi memorizzarli in un Database. Se SQLite non è abbastanza veloce per milioni di righe, utilizzare un altro database. SQLite dovrebbe essere ok, ref Cosa sono le caratteristiche delle prestazioni di sqlite con file di database molto grandi? )

Se i dati che vengono generati verranno sempre visualizzati e l'elaborazione che viene eseguita su questi dati è lo stile, il layout e il filtro, XML è migliore.

Se hai problemi a memorizzare qualcosa in modo efficiente in un database, è probabile che la modellazione dei dati sia errata.

I database sono davvero bravi a memorizzare e indicizzare grandi quantità di dati, XML non lo è.

    
risposta data 13.06.2012 - 15:03
fonte

Leggi altre domande sui tag