Я хочу сохранить географические данные в реляционной базе данных и иметь возможность запрашивать данные на основе их местоположения (страна, штат или аналогичные не координаты).
Мое текущее решение состоит в том, чтобы в моей таблице было 4 дополнительных поля (во всех интересующих меня странах есть 2 или 3 административных деления) и фильтр по строкам. Но я понимаю, что это плохое решение и хотел бы нормализовать мой стол.
Я также буду использовать эти данные, чтобы определить, какую страницу хотят посетить мои пользователи, поэтому поиск запроса должен быть простым, например "/usa/california/san_fransisco/..."
Единственное другое решение, которое я могу предложить, - это сохранить эти 4 дополнительные поля в другой таблице и связать их с внешним ключом, но это все равно будет означать некоторое дублирование данных, поскольку название страны будет дублироваться во множестве строк.
Есть ли лучший способ сделать это?