Описание БД
Проект БД ФИАС ГАР для 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]
заполняет таблицу в два этапа:
- Заполняются все столбцы (кроме
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
в данном случае представляет собой относительный адрес, где у субъекта РФ он будет равен полному адресу объекта.