Questa domanda si ramifica da questa domanda, Quali sono le differenze tra gli algoritmi che utilizzano le strutture dati e gli algoritmi che utilizzano i database? .
La domanda generale
La struttura di una o più tabelle del database deve corrispondere alle strutture dati previste nella logica?
Alcuni contesti
L'esempio più semplice (e può essere semplificato) di ciò a cui sto pensando è una tabella di database le cui colonne corrispondono alle proprietà di una struttura di dati dell'elenco collegato. Quindi le proprietà che penso per un elenco collegato sono le seguenti:
Elenco collegato
- Identità del nodo.
- Articolo / Contenuto nel nodo.
- Nodo successivo.
Riguardo alla domanda generale, le colonne della tabella del database che penso di ottenere mappate sono le seguenti:
Elenco collegato > Tabella del database
- Identità nodo > Colonne chiave primaria
- Elemento / Contenuto nella colonna > Colonne contenenti dati che devono essere conservati.
- Prossimo nodo > colonna contenente un riferimento al record che deve seguirlo nella stessa tabella.
Un'applicazione che posso pensare che rappresenta quanto sopra è dire, tenere traccia di una traccia di punti che hai visitato su una mappa. Quindi posso immaginare di salvare le coordinate del punto A inserendo quindi la colonna del nodo Next mappato, le coordinate del punto B. Lascia che la mia immaginazione scenda un po 'più avanti, poi recuperi questi dati e li carichi in una lista collegata, usa le sue proprietà per fare attraversare e disegnare nuovamente questi punti su una mappa in un secondo momento.
Domande
- Vedo come la creazione di una mappatura come questa semplifica il pensiero sui dati, ma ritengo anche che ti limiti a pensare ai dati solo in questo modo. Quanto conformi rendi le tue tabelle di database alle strutture dati, se lo sono?
- I database dovrebbero essere considerati come reami di dati grezzi che devono essere modellati e plasmati (tradotti) in strutture di dati selezionate in base allo scopo del programma?
Ripeto ciò che ho detto nell'ultimo post. So che le risposte senza un contesto specifico sono difficili. I pensieri, i consigli oi punti di discussione sono principalmente ciò che sto cercando e sarebbe molto apprezzato! Ho provato a dare un contesto più specifico in questo post.