Описание БД
Проект БД ФИАС ГАР для SQL Server.
Данный проект содержит в себе таблицы ФИАС и дополнительные объекты для упрощения работы с адресами.
Изначально таблицы БД ФИАС были созданы на основе XSD схем с помощью SMO (класс DBCreate в FIASUpdate). После правки таблиц структура БД была импортирована в проект.
Дополнительные объекты#
Объекты в схеме [adm] используют административную иерархию, в [mun] муниципальную иерархию. Объекты в схеме [dbo] не зависят от иерархии.
Описание дополнительных объектов БД
Реестр адресов#
Данные объекты БД были созданы для заполнения реестра полными адресами объектов.
*.[A_IndexRegistry]#
Основная таблица БД, является реестром содержащим все объекты.
Имеет полнотекстовый индекс на столбце AddressFull для быстрого поиска.
ParentGUID- GUID родителяObjectGUID- GUID объектаLevel- Уровень изOBJECT_LEVELS.LEVELType- Тип объекта изADDR_OBJ_TYPES.SHORTNAMEName- Наименование объектаNameFull- Полное наименование ({Type} {Name})AddressFull- Полный адрес начиная с субъекта РФ
Процесс заполнения#
Процедура *.[UP_RefreshRegistry] заполняет таблицу в два этапа:
- Заполняются все столбцы (кроме
AddressFull) данными из табличной функции[dbo].[UF_ReestrAggregate]. - Заполняется
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 в данном случае представляет собой относительный адрес, где у субъекта РФ он будет равен полному адресу объекта.