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.