sql >> Database >  >> RDS >> Mysql

Beste manier om JSON-gegevens in MYSQL in te voegen

Sommige opmerkingen hebben voorgesteld om het in JSON-indeling te laten en op te slaan in een tekstkolom.

Ik stel voor dat als je controle hebt over je schema, je het in twee NUMERIC moet opslaan velden - één voor breedtegraad en één voor lengtegraad. In wezen zijn dat de gegevens die je hebt. Het feit dat je het hebt ontvangen met JSON als containerformaat is niet relevant voor de gegevens zelf.

Als u het opslaat als een breedtegraad en een lengtegraad, is het eenvoudiger om er een query op uit te voeren, en u kunt de JSON later nog steeds opnieuw maken als u dat wilt... maar als u het uiteindelijk wilt ophalen niet als JSON bent u in een veel betere positie om dit te doen. Het betekent ook dat je jezelf niet aan JSON bindt tegen toekomstige wijzigingen.

Persoonlijk denk ik dat het altijd een goed idee is om de intrinsieke aard van de gegevens mentaal te scheiden van de manier waarop je deze ontvangt. Sla de gegevens op in welk formaat dan ook dat idiomatisch is voor die opslag - dus als u een getal opslaat, gebruik dan een van de numerieke gegevenstypen. Als je een datum en tijd opslaat, gebruik dan datetime , enz. Op die manier krijg je niet elke keer dat je er toegang toe wilt krijgen een extra laag tussen jou en de gegevens zelf.

Deze aanpak betekent ook dat je veel meer kans hebt om slechte gegevens vroeg op te merken - als je de JSON gewoon direct opslaat zonder deze eerst te ontleden, zou je later vinden dat de breedtegraad of lengtegraad geen geldig getal is. Heck, het feit dat uw voorbeeldgegevens soms lon . hebben en heeft soms lng stelt voor dat u toch wat gegevens opruimt.



  1. is php sorteren beter dan mysql bestellen op?

  2. MySQL-syntaxisfout. Kan het niet oplossen

  3. Is INSERT RETURNING gegarandeerd om dingen in de juiste volgorde te retourneren?

  4. MySQL multidimensionaal? Dynamisch draaipunt