Beberapa komentar menyarankan untuk membiarkannya dalam format JSON dan menyimpannya di kolom teks.
Saya menyarankan bahwa jika Anda memiliki kendali atas skema Anda, Anda harus menyimpannya dalam dua NUMERIC
bidang - satu untuk garis lintang, dan satu untuk garis bujur. Pada dasarnya, itulah data yang Anda miliki. Fakta bahwa Anda menerimanya menggunakan JSON sebagai format penampung tidak relevan dengan data itu sendiri.
Jika Anda menyimpannya sebagai garis lintang dan garis bujur, akan lebih mudah untuk menanyakannya, dan Anda masih dapat membuat ulang JSON nanti jika Anda mau... tetapi jika Anda akhirnya ingin mengambilnya tidak sebagai JSON, Anda akan berada dalam posisi yang jauh lebih baik untuk melakukannya. Ini juga berarti Anda tidak mengikat diri Anda ke JSON terhadap perubahan di masa mendatang.
Secara pribadi saya pikir itu selalu merupakan ide yang baik untuk secara mental memisahkan sifat intrinsik data dari cara Anda menerimanya. Simpan data dalam format apa pun yang idiomatis untuk penyimpanan itu - jadi jika Anda menyimpan nomor, gunakan salah satu tipe data numerik. Jika Anda menyimpan tanggal dan waktu, gunakan datetime
, dll. Dengan begitu, Anda tidak akan mendapatkan lapisan tambahan antara Anda dan data itu sendiri setiap kali Anda ingin mengaksesnya.
Pendekatan ini juga berarti Anda lebih mungkin untuk menemukan data yang buruk sejak awal - jika Anda hanya menyimpan JSON secara langsung tanpa menguraikannya terlebih dahulu, Anda dapat nanti temukan bahwa garis lintang atau bujur bukanlah angka yang valid. Heck, fakta bahwa data sampel Anda terkadang memiliki lon
dan terkadang memiliki lng
menyarankan Anda tetap melakukan pembersihan data.