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

Описание БД

Проект БД ФИАС ГАР для SQL Server.

Данный проект содержит в себе таблицы ФИАС и дополнительные объекты для упрощения работы с адресами.

Изначально таблицы БД ФИАС были созданы на основе XSD схем с помощью SMO (класс DBCreate в FIASUpdate). После правки таблиц структура БД была импортирована в проект.

Дополнительные объекты#

Объекты в схеме [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) данными из табличной функции [dbo].[UF_ReestrAggregate].
  2. Заполняется AddressFull на основе табличной функции *.[UF_RegistryAddress].

[dbo].[UF_ReestrAggregate]#

Табличная функция, которая возвращает актуальные записи объектов из всех таблиц ФИАС в едином формате.

ObjectID ObjectGUID Level Type Name
61830554 67263e8b-63f6-4b74-8eed-536eca53959c 10 стр. 31

[dbo].[UF_ReestrAggregateAll]#

Аналогична прошлой функции, но возвращает все записи. А также дополнительные столбцы: StartDate UpdateDate EndDate IsActive IsActual

*.[UF_RegistryAddress]#

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

GUID Level Type Name NameFull AddressFull
67263e8b-63f6-4b74-8eed-536eca53959c 10 стр. 31 стр. 31 обл Свердловская, г Екатеринбург, ул Данилы Зверева, стр. 31

*.[UF_RegistryHierarchy] (Устаревшее)#

Табличная функция, которая использует данные из *.[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
e48a89cd-267d-480b-b002-2cc3ab7df604 3 г.о. город Екатеринбург г.о. город Екатеринбург, г Екатеринбург, ул Данилы Зверева, стр. 31
92b30014-4d52-4e2e-892d-928142b924bf 1 обл Свердловская обл Свердловская, г.о. город Екатеринбург, г Екатеринбург, ул Данилы Зверева, стр. 31

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