sql >> Databasteknik >  >> RDS >> Mysql

Bästa sättet att infoga JSON-data i MYSQL

Vissa kommentarer har föreslagit att du lämnar den i JSON-format och lagrar den i en textkolumn.

Jag skulle föreslå att om du har kontroll över ditt schema bör du lagra det i två NUMERIC fält - ett för latitud och ett för longitud. I grund och botten är det den data du har. Det faktum att du har tagit emot det med JSON som containerformat är irrelevant för själva data.

Om du lagrar det som en latitud och en longitud är det enklare att fråga efter det, och du kan fortfarande återskapa JSON senare om du vill... men om du till slut vill hämta det inte som JSON kommer du att ha en mycket bättre position att göra det. Det betyder också att du inte binder dig till JSON mot framtida ändringar.

Personligen tycker jag att det alltid är en bra idé att mentalt separera datas inneboende natur från hur du råkar ta emot den. Lagra data i vilket format som helst som är idiomatiskt för den lagringen - så om du lagrar ett nummer, använd en av de numeriska datatyperna. Om du lagrar ett datum och en tid, använd datetime , etc. På så sätt får du inte ett extra lager mellan dig och själva data varje gång du vill komma åt den.

Detta tillvägagångssätt innebär också att du är mycket mer benägen att upptäcka dålig data tidigt - om du bara lagrar JSON direkt utan att analysera den först, kan du senare upptäck att latitud eller longitud inte är ett giltigt tal. Heck, det faktum att dina exempeldata ibland har lon och har ibland lng föreslår att du ändå ska göra lite datarensning.



  1. Neo4j - Släpp en begränsning med Cypher

  2. Hur kan jag använda OR-villkor i MySQL CASE-uttryck?

  3. Syftet med SQLAlchemy över MySQLdb

  4. Vad liknar MS SQL Server-kapaciteten funktionen MySQL FIELD()?