Algunos comentarios sugirieron dejarlo en formato JSON y almacenarlo en una columna de texto.
Le sugiero que si tiene control sobre su esquema, debe almacenarlo en dos NUMERIC
campos:uno para latitud y otro para longitud. Fundamentalmente, esos son los datos que tienes. El hecho de que lo haya recibido utilizando JSON como formato de contenedor es irrelevante para los datos en sí.
Si lo almacena como una latitud y una longitud, es más sencillo consultarlo, y aún puede volver a crear el JSON más adelante si lo desea... pero si termina queriendo obtenerlo no como JSON, estará en una posición mucho mejor para hacerlo. También significa que no se está atando a JSON frente a cambios futuros.
Personalmente, creo que siempre es una buena idea separar mentalmente la naturaleza intrínseca de los datos de la forma en que los recibe. Almacene los datos en cualquier formato que sea idiomático para ese almacenamiento; por lo tanto, si está almacenando un número, use uno de los tipos de datos numéricos. Si está almacenando una fecha y hora, use datetime
, etc. De esa manera, no terminará con una capa adicional entre usted y los datos en sí cada vez que quiera acceder a ellos.
Este enfoque también significa que es mucho más probable que detecte datos incorrectos desde el principio:si solo almacena el JSON directamente sin analizarlo primero, podría más tarde encuentra que la latitud o la longitud no es un número válido. Diablos, el hecho de que sus datos de muestra a veces tengan lon
y a veces tiene lng
sugiere que debería hacer una limpieza de datos de todos modos.