У меня есть таблица, которая содержит местоположение всех географических местоположений в мире и их взаимосвязи.
Вот пример, показывающий иерархию.Вы увидите, что данные на самом деле хранятся как все три
- Перечислимый путь
- Список смежностей
- Вложенный набор
Данныеочевидно, никогда не меняется.Ниже приведен пример прямых предков локации Брайтон в Англии, у которой горе составляет 13911.
Таблица: geoplanet_places
(5,6 миллионов строк) Большое изображение: http://tinyurl.com/68q4ndx
У меня есть еще одна таблица с именем entities
.В этой таблице хранятся мои предметы, которые я хотел бы привязать к географическому местоположению.Я храню некоторую основную информацию, но самое главное, я храню woeid
, который является внешним ключом от geoplanet_places
.
В итоге таблица entities
будет содержать несколько тысяч объектов.И я хотел бы иметь возможность вернуть полное дерево всех узлов, которые содержат сущности.
Я планирую создать что-то, что упростит фильтрацию и поиск объектов на основе их географического местоположения и сможет обнаружить, сколько объектов можно найти на этом конкретном узле.
Итак, если у меня в таблице entities
есть только одна сущность, у меня может быть что-то вроде этого
`Земля (1)
Великобритания (1))
Англия (1)
Восточный Суссекс (1)
Брайтон и Хоув Сити (1)
Брайтон (1) `
Давайте тогда скажем, что у меня есть другая сущность, которая находится в Девоне, тогда она показала бы что-то вроде:
Земля (2)
United Kingom (2)
Англия (2)
Девон (1)
Восточный Суссекс (1) ... и т. Д.
(Счет), который будетСкажите, сколько сущностей находится «внутри» каждого географического местоположения, не нужно жить.Я могу жить, генерируя свой объект каждый час и кэшируя его.
Цель состоит в том, чтобы иметь возможность создать интерфейс, который может начать отображать только страны, в которых есть объекты ..
Так как
Argentina (1021)
, Chile (291)
, ...
, United States (32,103)
, United Kingdom (12,338)
Затем пользователь нажимает на местоположение, такое как United Kindom, и затем получает все непосредственные дочерние узлы, которые являются потомками Соединенного Королевства.И в них есть сущность.
Если в Соединенном Королевстве есть 32 округа, но в конечном итоге только 23 из них, когда вы развернетесь, сохранят сущности в них, я не хочу отображать остальные 9.Это только места.
Этот сайт удачно демонстрирует функциональность, которую я хочу достичь: http://www.homeaway.com/vacation-rentals/europe/r5
Как вы рекомендуете управлять такой структурой данных?
Вещи, которые я использую.
Я планирую провести тренировкуспады должны быть максимально быстрыми.Я хочу создать интерфейс AJAX, который, кажется, будет бесполезным для поиска.
Мне также было бы интересно узнать, по каким столбцам вы бы порекомендовали индексировать.