Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor maneira de inserir dados JSON no MYSQL


Alguns comentários sugeriram deixá-lo no formato JSON e armazená-lo em uma coluna de texto.

Sugiro que, se você tiver controle sobre seu esquema, armazene-o em dois NUMERIC campos - um para latitude e outro para longitude. Fundamentalmente, esses são os dados que você tem. O fato de você tê-lo recebido usando JSON como formato de contêiner é irrelevante para os dados em si.

Se você armazená-lo como latitude e longitude, é mais simples consultá-lo e ainda pode recriar o JSON mais tarde, se quiser... como JSON, você estará em uma posição muito melhor para fazê-lo. Isso também significa que você não está se vinculando ao JSON contra alterações futuras.

Pessoalmente, acho que é sempre uma boa ideia separar mentalmente a natureza intrínseca dos dados da maneira como você os recebe. Armazene os dados em qualquer formato idiomático para esse armazenamento - portanto, se você estiver armazenando um número, use um dos tipos de dados numéricos. Se você estiver armazenando uma data e hora, use datetime , etc. Dessa forma, você não acaba com uma camada extra entre você e os próprios dados toda vez que quiser acessá-los.

Essa abordagem também significa que é muito mais provável que você detecte dados ruins no início - se você apenas armazenar o JSON diretamente sem analisá-lo primeiro, poderá mais tarde descobrir que a latitude ou longitude não é um número válido. Caramba, o fato de que seus dados de amostra às vezes têm lon e às vezes tem lng sugere que você deve fazer alguma limpeza de dados de qualquer maneira.