Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beste Möglichkeit, JSON-Daten in MYSQL einzufügen

Einige Kommentare haben vorgeschlagen, es im JSON-Format zu belassen und es in einer Textspalte zu speichern.

Ich würde vorschlagen, dass Sie, wenn Sie die Kontrolle über Ihr Schema haben, es in zwei NUMERIC speichern sollten Felder - eines für den Breitengrad und eines für den Längengrad. Im Grunde sind das die Daten, die Sie haben. Die Tatsache, dass Sie es mit JSON als Containerformat erhalten haben, ist für die Daten selbst irrelevant.

Wenn Sie es als Breiten- und Längengrad speichern, ist es einfacher, es abzufragen, und Sie können das JSON später immer noch neu erstellen, wenn Sie möchten ... aber wenn Sie es am Ende abrufen möchten, nicht als JSON sind Sie dazu viel besser in der Lage. Es bedeutet auch, dass Sie sich gegen zukünftige Änderungen nicht an JSON binden.

Ich persönlich denke, dass es immer eine gute Idee ist, die eigentliche Natur der Daten mental von der Art und Weise zu trennen, wie Sie sie zufällig erhalten. Speichern Sie die Daten in einem für diesen Speicher idiomatischen Format. Wenn Sie also eine Zahl speichern, verwenden Sie einen der numerischen Datentypen. Wenn Sie ein Datum und eine Uhrzeit speichern, verwenden Sie datetime usw. Auf diese Weise entsteht nicht jedes Mal, wenn Sie darauf zugreifen möchten, eine zusätzliche Schicht zwischen Ihnen und den Daten selbst.

Dieser Ansatz bedeutet auch, dass Sie schlechte Daten mit größerer Wahrscheinlichkeit frühzeitig erkennen – wenn Sie den JSON-Code einfach direkt speichern, ohne ihn vorher zu parsen, könnten Sie das später tun Stellen Sie fest, dass der Breiten- oder Längengrad keine gültige Zahl ist. Heck, die Tatsache, dass Ihre Beispieldaten manchmal lon haben und hat manchmal lng schlägt vor, dass Sie trotzdem eine Datenbereinigung durchführen sollten.