sql >> Database teknologi >  >> RDS >> Mysql

Bedste måde at indsætte JSON-data i MYSQL

Nogle kommentarer har foreslået at lade det være i JSON-format og gemme det i en tekstkolonne.

Jeg vil foreslå, at hvis du har kontrol over dit skema, skal du gemme det i to NUMERIC felter - en for breddegrad og en for længdegrad. Grundlæggende er det de data, du har. Det faktum, at du har modtaget det med JSON som et containerformat, er irrelevant for selve dataene.

Hvis du gemmer den som en breddegrad og en længdegrad, er det nemmere at søge efter den, og du kan stadig genskabe JSON'en senere, hvis du vil... men hvis du ender med at ville hente den ikke som JSON, vil du være i en meget bedre position til at gøre det. Det betyder også, at du ikke binder dig til JSON mod fremtidige ændringer.

Personligt synes jeg, at det altid er en god idé mentalt at adskille dataens iboende natur fra den måde, du tilfældigvis modtager dem på. Gem dataene i det format, der er idiomatisk for den lagring - så hvis du gemmer et nummer, skal du bruge en af ​​de numeriske datatyper. Hvis du gemmer en dato og et klokkeslæt, skal du bruge datetime osv. På den måde ender du ikke med et ekstra lag mellem dig og selve dataene, hver gang du vil have adgang til det.

Denne tilgang betyder også, at du er meget mere tilbøjelig til at opdage dårlige data tidligt - hvis du bare gemmer JSON direkte uden at analysere den først, kan du senere finde ud af, at breddegraden eller længdegraden ikke er et gyldigt tal. For pokker, det faktum, at dine eksempeldata nogle gange har lon og nogle gange har lng foreslår, at du alligevel bør foretage nogle dataoprydning.



  1. Kolonne Afhænger af anden kolonne

  2. Træk uger fra en dato i PostgreSQL

  3. Give privilegier på fremtidige borde i PostgreSQL?

  4. Undslippende enkelt citat i PLSQL