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

Il modo migliore per inserire dati JSON in MySQL

Alcuni commenti hanno suggerito di lasciarlo in formato JSON e di archiviarlo in una colonna di testo.

Suggerirei che se hai il controllo sul tuo schema, dovresti memorizzarlo in due NUMERIC campi:uno per la latitudine e uno per la longitudine. Fondamentalmente, questi sono i dati che hai. Il fatto che tu l'abbia ricevuto utilizzando JSON come formato contenitore è irrilevante per i dati stessi.

Se lo memorizzi come latitudine e longitudine, è più semplice interrogarlo e puoi comunque ricreare il JSON in un secondo momento se lo desideri... ma se finisci per recuperarlo non come JSON, sarai in una posizione molto migliore per farlo. Significa anche che non ti legherai a JSON per modifiche future.

Personalmente penso che sia sempre una buona idea separare mentalmente la natura intrinseca dei dati dal modo in cui capita di riceverli. Archivia i dati in qualsiasi formato sia idiomatico per tale archiviazione, quindi se stai archiviando un numero, utilizza uno dei tipi di dati numerici. Se stai memorizzando una data e un'ora, usa datetime , ecc. In questo modo non ti ritroverai con un livello aggiuntivo tra te e i dati stessi ogni volta che desideri accedervi.

Questo approccio significa anche che è molto più probabile che individuerai dati errati all'inizio:se memorizzi semplicemente il JSON direttamente senza prima analizzarlo, potresti più tardi scopri che la latitudine o la longitudine non sono un numero valido. Diamine, il fatto che i tuoi dati di esempio a volte abbiano lon e talvolta ha lng suggerisce di eseguire comunque un po' di pulizia dei dati.