Перейти к содержанию

Описание БД

Объекты в схеме [adm] используют административную иерархию, в [mun] муниципальную иерархию. Объекты в схеме dbo не зависят от иерархии(но это не точно ¯\_(ツ)_/¯)

*.A_IndexRegistry#

Основная таблица БД, является реестром содержащим все объекты.
Имеет полнотекстовый индекс на столбце AddressFull для быстрого поиска.

  • ParentGUID - GUID родителя
  • ObjectGUID - GUID объекта
  • Level - Уровень из OBJECT_LEVELS.LEVEL
  • Type - Тип объекта из ADDR_OBJ_TYPES.SHORTNAME
  • Name - Наименование объекта
  • NameFull - {Type} {Name}
  • AddressFull - Полный адрес начиная с субъекта РФ

Процесс заполнения#

Процедура *.UP_RefreshRegistry заполняет таблицу в два этапа:

  1. На основе данных из выгрузки заполняются все столбцы кроме AddressFull.
  2. Для каждого объекта заполняется AddressFull.
    Адрес берётся из *.SUF_AddressFull, которая выбирает строку с полным адресом из *.UF_Hierarchy

*.UF_Hierarchy#

Рекурсивная функция которая использует данные из *.[A_IndexRegistry] для создания иерархи в следующем формате.

GUID Level Type Name NameFull
67263e8b-63f6-4b74-8eed-536eca53959c 10 стр. 31 стр. 31
179c5f01-4f55-4611-b6a0-b9925c2cf880 8 ул Данилы Зверева ул Данилы Зверева, стр. 31
2763c110-cb8b-416a-9dac-ad28a55b4402 5 г Екатеринбург г Екатеринбург, ул Данилы Зверева, стр. 31
92b30014-4d52-4e2e-892d-928142b924bf 1 обл Свердловская обл Свердловская, г Екатеринбург, ул Данилы Зверева, стр. 31

NameFull в данном случае представляет собой относительный адрес, где у субъекта РФ он будет равен полному адресу объекта.