Някои коментари предлагаха да го оставите във формат JSON и да го съхраните в текстова колона.
Бих предложил, ако имате контрол върху вашата схема, трябва да я съхранявате в две NUMERIC
полета - едно за географска ширина и едно за дължина. По принцип това са данните, с които разполагате. Фактът, че сте го получили, използвайки JSON като формат на контейнер, е без значение за самите данни.
Ако го съхраните като географска ширина и дължина, е по-лесно да направите заявка над него и пак можете да пресъздадете JSON по-късно, ако искате... но ако в крайна сметка искате да го извлечете не като JSON, вие ще бъдете в много по-добра позиция да го направите. Това също означава, че не се обвързвате с JSON срещу бъдещи промени.
Лично аз смятам, че винаги е добра идея мислено да отделите вътрешното естество на данните от начина, по който случайно ги получавате. Съхранявайте данните във формат, който е идиоматичен за това съхранение - така че ако съхранявате число, използвайте един от типовете числови данни. Ако съхранявате дата и час, използвайте datetime
и т.н. По този начин няма да имате допълнителен слой между вас и самите данни всеки път, когато искате да получите достъп до тях.
Този подход също така означава, че е много по-вероятно да забележите лоши данни рано – ако просто съхранявате JSON директно, без първо да го анализирате, можете по-късно установете, че географската ширина или дължина не е валидно число. По дяволите, фактът, че вашите примерни данни понякога имат lon
и понякога има lng
предполага, че все пак трябва да изчистите данните.