Ich versuche gerade, eine Datenbank zu entwerfen, und bin mir nicht sicher, wie ich mich einem Array-Feld mit dynamischer Größe eines meiner Objekte nähern kann. Mein erster Gedanke ist, eine Spalte in meinem Objekt zu verwenden, um ein Array von ganzen Zahlen zu speichern. Je mehr ich lese, desto mehr denke ich, dass dies nicht die beste Option ist. Konkret habe ich ein Spielerobjekt, das 0 bis viele Elemente speichert, die durch eine ganze Zahl dargestellt werden. Wie kann man das am besten darstellen?Was ist der beste Weg, um ein Array in einer relationalen Datenbank zu speichern?
Antwort
Wenn diese Sammlung von Werten atomar ist, speichern Sie sie zusammen. Das heißt, wenn Sie sich immer für die gesamte Gruppe interessieren, sollten Sie, wenn Sie nie nach verschachtelten Werten suchen und niemals nach geschachtelten Werten sortieren, diese zusammen als einen einzelnen Feldwert speichern.
Wenn nicht, sollten sie in einer separaten Tabelle gespeichert werden, jeder Wert bringt eine Zeile, jeder die Eltern-ID (Fremdschlüssel) eines Datensatzes in der anderen Tabelle, die sie als Gruppe "besitzt".
Zum Beispiel sollte ein Bündel von Messwerten eines wissenschaftlichen Instruments, die nur zusammen als eine Sammlung für die Analyse verwendet werden, zusammen in einem Feld gespeichert werden. Im Gegensatz dazu sollte eine Liste von Telefonnummern für einen Kunden, die häufig nach einer individuellen Nummer abgefragt werden müssen, wahrscheinlich in eine einzelne Telefonnummer pro Zeile in einer zugehörigen Kindtabelle aufgeteilt werden.
Weitere Informationen finden Sie unter dem Begriff "Datenbanknormalisierung".
Einige Datenbanken unterstützen ein Array als Datentyp. Mit Postgres können Sie beispielsweise eine Spalte als eindimensionales Array oder sogar als zweidimensionales Array definieren.
Wenn Ihre Datenbank nicht Array als eine Art von Spaltendefinition unterstützen, dann können Sie drei Alternativen haben:
- XML/JSON
Sie die Datenerfassung Transformation in ein XML oder JSON Dokument, wenn Ihre Datenbank Ihrer Datenbank unterstützt diesen Typ. Beispiel: Postgres bietet grundlegende Unterstützung für das Speichern, Abrufen und nicht indizierte Durchsuchen von XML mithilfe von XPath. Und Postgres bietet ausgezeichnete branchenführende Unterstützung für JSON als Datentyp einschließlich indizierter Unterstützung für verschachtelte Werte mit seinemjsonb
Datentyp, bei dem eingehende JSON analysiert und in einem intern definierten Binärformat gespeichert wird. Diese Funktion spricht einen der Hauptgründe an, warum Benutzer die Verwendung der sogenannten "NoSQL" -Systeme in Betracht ziehen, um semi-structured data zu speichern und zu suchen. - Text
Erstellen Sie eine Zeichenfolgendarstellung Ihrer Daten, um sie als Text zu speichern. - BLOB
Erstellen Sie einen binären Wert zum Speichern als BLOB.
- 1. Was ist der beste Weg, um Byte-Array in SQL-Datenbank mit NHibernate zu speichern?
- 2. Der beste Weg, um Tags in einer Datenbank zu speichern?
- 3. Was ist der beste Weg, historische 1: M-Beziehungen in einer relationalen Datenbank zu speichern (und darauf zuzugreifen)?
- 4. Was ist der beste Weg, um ein mehrdimensionales Array mit Doktrin 2 zu speichern?
- 5. Was ist der beste Weg, um viele Marker in der Datenbank zu speichern?
- 6. Was ist der beste Weg, um einen Geldwert in der Datenbank zu speichern?
- 7. Was ist der beste Weg, um die Reihenfolge zwischen den Zeilen in der Datenbank zu speichern?
- 8. Was ist der beste Ansatz, um von der relationalen OLTP-Datenbank zum OLAP-Cube zu gelangen?
- 9. Was ist der beste Weg, Konfigurationsvariablen in PHP zu speichern?
- 10. Was ist der beste Weg, um ein Delphi-Set in einem Dataset zu speichern?
- 11. Was ist der beste Weg, um ein Verzeichnis zu leeren?
- 12. Was ist der beste Weg, um Daten lokal in einer WPF-Anwendung zu speichern?
- 13. Was ist der "beste" Weg, Skripte zu speichern?
- 14. Was ist der beste Weg, um große Strings in einer Datenbank zu erhalten? (SQL Compact)
- 15. beste Weg, um Ergebnisse zu speichern
- 16. Was ist der beste Weg, RichText (WYSIWYG-Ausgabe) zu speichern?
- 17. Was ist der "beste" Weg, internationale Adressen in einer Datenbank zu speichern?
- 18. Was ist der beste Weg, um ein Objekt in einem Array in ReactJS zu aktualisieren?
- 19. Was ist der beste Weg, um ein Zählerfeld in MySQL
- 20. Was ist der beste Weg, um ein Modell zu einer App in der Produktion hinzuzufügen
- 21. Was ist der beste Weg, über ein Array in scala
- 22. Was ist der beste Weg, um ein Bild von einer SQL Server-Datenbank in asp.net anzuzeigen?
- 23. Was ist der beste Weg, um diese Daten in einer Datenbank zu strukturieren?
- 24. Was ist der beste Weg, um Daten wie "Favoriten" in einer Android-App zu speichern?
- 25. Was ist der beste Weg, um Informationen in einer SQL-Datenbank zu "säubern"?
- 26. Was ist der beste Weg, um ein ActiveRecord-Objekt in memcached zu speichern?
- 27. Was ist der beste Weg, Autoren von Büchern in der Datenbank zu speichern?
- 28. Was ist der beste Weg, um XML-Daten in einer Excel-Datei zu speichern
- 29. Was ist der beste Weg, um ein verschachteltes Array eines Modells in Laravel 4 zu senden?
- 30. Der beste Weg, um eine Dateigröße in Bytes zu speichern?