Как правильно реализовать архитектуру хранения местоположения товаров?

Есть таблица с товарами.
Есть таблица с адресами где каждый товар доступен.
Пример
  • iPhone продаёться в Франций и Германий
  • iPad продаёться только в Париже
  • iMac продаёться только в Берлине

При добавление товара, делаем запрос на Nominatim OSM и получаем ID Франций и ID Германий, и их сохраняем в БД для iPhone. (и так для всех товаров)
5cd54f5381b9d098888174.png
Думаю один их этих ID сохранить, только пока что не знаю чем они отличаються.

# Пример 1
Покупатель ищет iPhone в Париже (получаем ID из Nominatim).
Проблема: как понять что ID Парижа это дочерний ID Франций?

# Пример 2
Покупатель ищет iMac в Германий (получаем ID из Nominatim).
Проблема: как понять что ID Германий это родительский ID Берлина?

# Пример 3
Покупатель ищет iPad в Франций(получаем ID из Nominatim).
Проблема: как понять что ID Франций это родительский ID Парижа?

И таких примеров можно много привести.

Думаю как-то нужно хранить отношение между ID стран, городов и посёлков.
Только возникает проблема что данные в OSM меняються, и со временем накопиться мусор в БД.

Или ещё одно решение: получить полигон из границ каждого объекта на карте.
И потом через PostGis искать вхождение полигона в другие полигоны.
Только тут опять проблема, потому что границы одной страны имеют несколько тысячь координат, и PostGis думаю трудно будет справляться с такими задачами.

Товары будут во многих странах, городах и населённых пунктах (возможно).
Нужно использовать именно OSM потому что держать у себя список всех городов и стран уже пробовали, и очень не удобно. Данные нужно постоянно обновить. Вообщем это решение не подходит.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы