In un programma che sto scrivendo, ho 3 modi diversi per memorizzare i dati generati dagli utenti:
(a) XML Files for each object (.Net Serialization)
(b) SQL Database (MSSQL)
(c) Massive terrifying blob of data in 1 file (I'm against this one)
Non c'è assolutamente alcuna differenza teorica in termini di prestazioni o dimensioni del file in questo (ipotetico) scenario, ma quale sarebbe il migliore da usare?
SQL overkill (Considerando che ci saranno fino a 2 milioni di elementi nel database), o l'opzione migliore? Da dove viene tracciata la linea tra BLOB, XML e SQL?
L'indice dovrebbe essere collegato al nome file (un GUID) o a un ID oggetto SQL (un GUID), quindi non c'è differenza nella funzionalità di ricerca. L'XML è memorizzato in più file e la dimensione del file non è un problema, quindi non è necessario analizzare l'intera cosa per accedere a un elemento specifico (basta aprire un flusso di file in {GUID} .xml)
Modifica: aggiungo altre informazioni per rendere più chiaro ciò che sto chiedendo.
Sto lavorando a un programma per un cliente che si trova nel settore della progettazione dei profumi. In tutti i casi, l'indice di ricerca sarà separato (il codice di qualcun altro che non oso toccare) e sarà indicizzato in memoria.
L'accesso casuale ai dati non è necessario in questo caso, poiché le persone recupererebbero le informazioni complete per un singolo elemento.
In un modo molto più chiaro di dire: se non hai bisogno di accedere a dati casuali in un database, e XML è più facile, va bene usare quello invece di un file SQL?
Modifica II: In entrambi i casi, sarà installato su un server di grandi dimensioni, quindi non sono preoccupato che il client abbia accesso a MSSQL o non abbia abbastanza spazio per ~ 1 KB extra per entrata ( Se non si utilizza SQL). Modifica III: Sto facendo solo selezionare tutte le query (es. SELECT * FROM (DB) WHERE ID = (GUID)) Oppure (Xml.deserialize ((GUID) .xml))