Какую иерархическую модель мне следует использовать? Смежность, Вложенность, or Enumerated?

У меня есть таблица, которая содержит расположение всех географических точек в мире и их взаимосвязи.

Вот пример, который показывает иерархию. Вы увидите, что данные фактически сохранены как все три

  • Перечислимый путь
  • Список смежности
  • Вложенный набор

Очевидно, что данные также никогда не меняются. Ниже приведен пример прямых предков местоположения Брайтон в Англии, имеющий значение 13911.

Таблица: geoplanet_places (5,6 миллиона строк)

У меня есть таблица, содержащая расположение всех географических точек мира и их взаимосвязи.

Вот пример, показывающий иерархию. Вы увидите, что данные фактически сохранены как все три

  • Перечислимый путь
  • Список смежности
  • Вложенный набор

Очевидно, что данные также никогда не меняются. Ниже приведен пример прямых предков местоположения Брайтон в Англии, имеющий значение 13911.

Таблица: geoplanet_places (5,6 миллиона строк)

У меня есть таблица, содержащая расположение всех географических точек в мире и их отношения.

Вот пример, который показывает иерархию. Вы увидите, что данные фактически сохранены как все три

  • Перечислимый путь
  • Список смежности
  • Вложенный набор

Очевидно, что данные также никогда не меняются. Ниже приведен пример прямых предков местоположения Брайтон в Англии, имеющий значение 13911.

Таблица: geoplanet_places (5,6 миллиона строк) Ancestors Большое изображение: http://tinyurl.com/68q4ndx

Затем у меня есть другая таблица с именем сущности . В этой таблице хранятся мои предметы, которые я хотел бы сопоставить с географическим местоположением. Я храню некоторую основную информацию, но самое главное, я храню woeid , который является внешним ключом из geoplanet_places . enter image description here

В конечном итоге таблица объектов будет содержать несколько тысяч объектов. И я хотел бы иметь возможность вернуть полное дерево всех узлов, содержащих объекты.

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

Итак, если у меня есть только одна сущность в моей таблице сущностей , у меня может быть что-то вроде этого

`Земля (1)

Соединенное Королевство (1)

Англия (1)

Восточный Суссекс (1)

Брайтон и Хоув-Сити (1)

Брайтон (1) `

Давайте предположим, что у меня есть еще одна организация, которая находится в Девоне, тогда это будет примерно так:

Земля (2)

Соединенное Королевство (2)

Англия (2)

Девон (1)

Восточный Суссекс (1) ... etc

(Подсчет), который скажет, сколько сущностей находится «внутри» каждого географического местоположения, не обязательно должен быть живым. Я могу жить, создавая свой объект каждый час и кешируя его.

Цель состоит в том, чтобы иметь возможность создать интерфейс, который вначале мог бы показывать только страны, в которых есть объекты.

Например,

Аргентина (1021) , Чили (291) , ... , США (32,103) , Великобритания (12,338)

Затем пользователь щелкнет местоположение, например United Kindom , а затем будут предоставлены все непосредственные дочерние узлы, которые являются потомками Соединенного Королевства И имеют в них сущность.

Если в United Kindgdom 32 округа, но только 23 из них в конечном итоге, когда вы развернете, сохранят объекты в них, то я не http://www.homeaway.com/vacation-rentals/europe/r5 enter image description here

Как вы рекомендуете управлять такой структурой данных?

Вещи, которые я использую.

  • PHP
  • MySQL
  • Solr

Я планирую сделать Drilldown как можно быстрее. Я хочу создать интерфейс AJAX, который будет бесполезен для поиска.

Мне также было бы интересно узнать, какие столбцы вы бы рекомендовали для индексации.

8
задан Layke 28 January 2011 в 17:22
поделиться