Проектирование нормализованной базы данных для получения 5 ближайших соседей с использованием пространственного индекса MySQL - PullRequest
0 голосов
/ 11 марта 2011

Я буду использовать MySQL с пространственным индексом для базы данных, затем я буду запрашивать 5 ближайших соседей из заданной точки (широта / долгота), эти точки будут точками интереса в Доминиканской Республике.После того, как я получу 5 ближайших точек, мне понадобится название местоположения, тип местоположения, адрес местоположения и (широта, долгота) для каждой точки.

Какой должен быть правильный способ проектированиямоя база данных?я думал о том, чтобы сделать следующее: Таблица: имя столбцы: идентификатор, имя

таблица: тип столбцы: идентификатор, тип

таблица: улица столбцы: идентификатор, улица

Таблица: Столбцы с номером улицы: ID, Номер улицы

Таблица: Столбцы города: ID, Район

Таблица: Столбцы города: ID, Город

Таблица: Столбцы Geopoint: Широта, Долгота, GeometryPoint

Я что-то пропустил?Любое предложение.Кто-нибудь знает место, где я могу прочитать об этом?Это школьный проект, который следует использовать вместе с мобильным приложением, чтобы показать пользователям 5 ближайших объектов интереса (автозаправочная станция, рестораны, аптека и т. Д.) В зависимости от их типа выбора и фактического местоположения.

Также, где я могу получить данные?Я имею в виду, есть ли способ, где я могу получить все названия улиц, районов, города моей страны и поместить его в свою базу данных.Я думаю, что интересные места, которые я могу создать сам.

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Прежде всего структура выглядит хорошо с точки зрения нормализации.Вы можете прочитать больше об этой теме, просто погуглив на предмет "правил нормализации базы данных".Но вы должны учитывать тот факт, что вы будете получать сложные запросы, разделяя каждое свойство (Street-table, street-number-table и т. Д.).Чтобы получить такой результат, как «POI XY, Streetname 2, Somecity, lat = 42.4, long = 13.2», вам нужно объединить как минимум четыре таблицы.Если производительность не является проблемой, продолжайте; -)

Вы можете получить данные (если таковые имеются) с openstreemap.org или с некоторыми точками интереса с geonames.org

С уважением, Мартин

0 голосов
/ 10 апреля 2011

Я знаю, что это домашнее задание, но я бы рекомендовал не использовать MySQL пространственный - он не реализовал большинство пространственных функций, а те, которые он реализует, являются просто реализациями с ограниченным доступом. Я бы порекомендовал PostGIS ,atialLite или MongoDB пространственный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...