Il problema è mantenere in .net un elenco di righe che hanno una sequenza specifica in cui le righe possono essere inserite, spostate e cancellate, ed essere in grado di salvare e ripristinare quella sequenza dal disco.
In memoria posso usare una lista .net con insert ed eliminare per posizione dell'indice. Le alternative che vedo per la conversione in un file su disco che mantiene la sequenza di elenchi sono a) utilizzando i campi "successivo" che contengono ID record o b) campi "prev" e "successivo" più efficienti (quello che penso come elenco collegato ) o, c) molto inefficiente, aggiornando un numero di sequenza in ogni record di dati per ogni modifica nell'elenco di memoria.
Quali potrebbero essere altri modi comuni ed efficaci per realizzare questo?
"DB" = database ... Ho bisogno di spostare i dati dentro e fuori da un database
"Inserisci ... per posizione di indice" = inserisci in qualsiasi punto della lista, cioè in alto, in mezzo, alla fine (cioè non un semplice inserto SQL che significa "aggiungi alla fine")
L'applicazione coinvolgerà, auspicabilmente, migliaia di piccoli gruppi separati, ciascuno dei quali lavora simultaneamente in tempo reale su elenchi separati. Le liste, quando sono completamente compilate, avranno una media di 200 righe, forse 300 byte per riga. Le liste fanno parte di un set di dati più complesso che include voti e altre informazioni. Quindi, per una stima approssimativa, diciamo 100 KB per un elenco completo e 50 KB in media per un elenco durante la sua fase di costruzione. Gli elenchi verranno aggiornati, per gruppo, forse una volta ogni dieci secondi. Quindi, ancora una volta, molto approssimativamente, 50 KB di dati di elenco scritti su disco per gruppo ogni dieci secondi, con l'app iniziale progettata per i gruppi 10K.