Child pages
  • Многоуровневая система ведения адресации
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »


Описание многоуровневой системы ведения адресации

В данной системе предусмотрено неограниченное количество элементов адресации (страны, регионы, города, улицы).

В зависимости от нужд провайдера можно настроить свое собственное дерево адресации. Например: Страна → Район → Город → Дом.

В системе адресации всегда присутствуют два элемента адресации: конечная точка подключения (bild_id - дом) и родительский элемент геолокации (улица, район и проч.).

Элементы геолокации имеют субпараметры, которые позволяют детализировать их сущность. Например, равноправные элементы геолокации такие как: Улица, Переулок, Бульвар или  Город, Село, ПГТ.

Элементы системы адресов связаны между собой и не подлежат изменению после создания.

Схема адресов

  • Украина (страна)
    • Киевская обл (регион)
      • Киев (город)
        • Хрещатик (улица)
          • 32 (дом)


Возможности


Пользователь (провайдер) сам задает схему адресов. Структура - линейная. Из обязательных уровней только дом (последний уровень, который соединяет новые адреса с уже существующей таблицей builds.


Для работы используются таблицы (названия приблизительные):

levels - Уровни структуры адресов (например 1-Страна, 2-Город, 3-Улица, 4-Дом ). Для каждого уровня указывается название уровня и имя переменной (для использования в шаблонах)


values - ноды (узлы) адреса. Сохранены в виде дерева. Каждое значение имеет 2 параметра - уровень  и родительский элемент (ссылка на элемент более высокого уровня). Для примера значение "улица Бандеры" будет иметь уровень 3 (улица) и ссылку на родительский элемент "город Коломыя"


main - связь между деревом адресов и location_id.  В таблице сохраняется location_id, id последней ноды адреса. (айди дома, если дом последний уровень).


Шаблон изменения и отображения адреса в веб форме планирую заменить строкой с полным адресом и кнопкой изменения. При нажатии открывается модальное окно с выбором адреса, после закрытия модального окна в форму подставляется location_id выбранного адреса.


Для отображения в документах и шаблонах данные можно получить с помощью user→info() , имя ключей хеша берется из таблицы уровней.


Отличия

В отличии от старой структуры (когда для каждого уровня создается своя таблица), для древовидных адресов недоступны следующие функции:


Нельзя сделать JOIN к другим таблицам (юзерс, интернет и тд)

Нельзя использовать в резулт_формере

Нельзя подключить к users_list

Нельзя подключить к internet_list

Нельзя вывести в виде таблицы

Нет доступа к всему массиву адресов, только по одному.

  • No labels