Niektóre komentarze sugerowały pozostawienie go w formacie JSON i przechowywanie go w kolumnie tekstowej.
Sugeruję, że jeśli masz kontrolę nad swoim schematem, powinieneś przechowywać go w dwóch NUMERIC
pola — jedno dla szerokości i jedno dla długości geograficznej. Zasadniczo to są dane, które posiadasz. Fakt, że otrzymałeś je przy użyciu JSON jako formatu kontenera, nie ma znaczenia dla samych danych.
Jeśli zapiszesz go jako szerokość i długość geograficzną, łatwiej będzie o nie zapytać, a jeśli chcesz, nadal możesz odtworzyć kod JSON... ale jeśli w końcu zechcesz go pobrać nie jako JSON będziesz w znacznie lepszej sytuacji, aby to zrobić. Oznacza to również, że nie wiążesz się z JSON przed przyszłymi zmianami.
Osobiście uważam, że zawsze dobrym pomysłem jest mentalne oddzielenie wewnętrznej natury danych od sposobu, w jaki je otrzymujesz. Przechowuj dane w dowolnym formacie idiomatycznym dla tego magazynu — więc jeśli przechowujesz liczbę, użyj jednego z numerycznych typów danych. Jeśli przechowujesz datę i godzinę, użyj datetime
itp. W ten sposób nie będziesz mieć dodatkowej warstwy między Tobą a samymi danymi za każdym razem, gdy chcesz uzyskać do nich dostęp.
Takie podejście oznacza również znacznie większe prawdopodobieństwo wykrycia błędnych danych na wczesnym etapie – jeśli po prostu przechowujesz bezpośrednio plik JSON bez wcześniejszego analizowania, możesz później stwierdzić, że szerokość lub długość geograficzna nie jest prawidłową liczbą. Heck, fakt, że twoje przykładowe dane czasami mają lon
a czasami ma lng
sugeruje, że mimo wszystko powinieneś przeprowadzić pewne czyszczenie danych.