Attualmente sto cercando di progettare un database e non sono troppo sicuro del modo migliore per accedere a un campo array di dimensioni dinamiche di uno dei miei oggetti. Il mio primo pensiero è di usare una colonna nel mio oggetto per memorizzare una matrice di numeri interi. Comunque più leggo, più penso che questa non sia l'opzione migliore. Esempio concreto saggio, ho un oggetto giocatore che memorizza 0 in molti oggetti, che sono rappresentati da un numero intero. Qual è il modo migliore per rappresentarlo?Qual è il modo migliore per memorizzare un array in un database relazionale?
risposta
Se la raccolta di valori è atomica, memorizzarli insieme. Significa, se ti interessa sempre l'intero gruppo, se non cerchi mai valori annidati e non ordini mai per valori nidificati, allora dovrebbero essere memorizzati insieme come un singolo valore di campo.
In caso contrario, devono essere archiviati in una tabella separata, ogni valore porta una riga, a ciascuno assegnato l'ID padre (chiave esterna) di un record sull'altra tabella che li "possiede" come gruppo.
Ad esempio, un gruppo di letture da uno strumento scientifico che vengono sempre utilizzate insieme come una raccolta per l'analisi deve essere memorizzato insieme in un campo. Al contrario, un elenco di numeri di telefono per un cliente che potrebbe dover essere interrogato per un numero individuale dovrebbe probabilmente essere suddiviso in un unico numero di telefono per riga in una tabella figlio correlata.
Per ulteriori informazioni, cercare il termine "normalizzazione del database".
Alcuni database supportano un array come tipo di dati. Ad esempio, Postgres consente di definire una colonna come un array a dimensione singola o anche a due dimensioni.
Se il database non supporta array come un tipo di definizione di colonna, allora si può avere tre alternative:
- XML/JSON
di trasformare la raccolta di dati in un documento XML o JSON se il database il database supporta quel tipo. Ad esempio, Postgres dispone di supporto di base per l'archiviazione, il recupero e la ricerca non indicizzata di XML utilizzando XPath. E Postgres offre un eccellente supporto di settore per JSON come un tipo di dati che include il supporto indicizzato su valori nidificati con il suo tipo di datijsonb
dove JSON in ingresso viene analizzato e archiviato in un formato binario definito internamente. Questa funzionalità affronta uno dei motivi principali per cui le persone considerano l'utilizzo dei cosiddetti sistemi "NoSQL", cercando di archiviare e cercare semi-structured data. - Testo
Creare una rappresentazione di stringa dei dati da memorizzare come testo. - BLOB
Creare un valore binario da memorizzare come BLOB.
- 1. Il modo migliore per memorizzare un array nel database MySQL?
- 2. Qual è il modo migliore per memorizzare un valore in denaro nel database?
- 3. Qual è il modo migliore per memorizzare singoli dati non ripetibili in un database?
- 4. il modo migliore per memorizzare relazioni utente 1: 1 nel database relazionale
- 5. Qual è il modo migliore per memorizzare un database MySQL nel controllo del codice sorgente?
- 6. Qual è il modo migliore per memorizzare un valore URL usando MySQL?
- 7. Qual è il modo più efficiente per memorizzare coppie nome/valore in un database Marklogic
- 8. Qual è il modo migliore per convertire un array di byte in un IntStream?
- 9. Qual è il modo migliore per memorizzare un gruppo di costanti che utilizza il mio programma?
- 10. Qual è il database "migliore" per l'embedded?
- 11. Il modo migliore per memorizzare gli elenchi ordinati in un database?
- 12. React.js - Qual è il modo migliore per aggiungere un valore a un array nello stato
- 13. In C#, qual è il modo migliore per trovare spazi vuoti in un array DateTime?
- 14. Qual è il modo migliore per memorizzare le variabili di classe in PHP?
- 15. Qual è il modo migliore per seminare un database in Rails?
- 16. qual è il modo migliore per conservare intervallo di tempo in un database del server SQL
- 17. Modo generalizzato per estrarre JSON da un database relazionale?
- 18. È possibile memorizzare javascript in un database?
- 19. Qual è il modo migliore per costruire un NSCompoundPredicate complesso?
- 20. Qual è il modo migliore per chiudere un ramo Mercurial?
- 21. Qual è il modo migliore per trovare tutte le combinazioni di elementi in un array?
- 22. Qual è il modo migliore per mescolare un array in Perl?
- 23. Qual è il modo migliore per creare un sub array da una matrice esistente in C++?
- 24. Qual è il modo migliore per creare un array di sola lettura in C#?
- 25. Qual è il modo migliore per memorizzare l'array di stringhe come proprietà del nodo in Neo4j
- 26. Qual è il modo migliore per supportare più database per un prodotto .NET?
- 27. Qual è il modo migliore per ridimensionare un oggetto BitmapData?
- 28. Qual è il modo migliore per rimuovere il primo elemento da un array?
- 29. Qual è il modo migliore per memorizzare e visualizzare il testo inserito nel markdown?
- 30. Qual è il modo migliore per memorizzare le impostazioni globali dell'applicazione in un'applicazione Rails?