0
Отвечен

ФИАСовский идентификатор объекта адреса.

Иван Сергеев 5 лет назад обновлен Антон Жиянов 5 лет назад 12

Объясните, пожалуйста, почему объекты адреса ссылаются на поле AOGUID фиасовской структуры, а не на уникальное поле AOID?

справочник: адреса

Ответ

Ответ

Точнее сказать, что AOID может меняться при обновлении.

В ФИАС в одной таблице лежат объекты (адреса) и их версии. Уникальный идентификатор адреса — AOGUID. Уникальный идентификатор версии адреса — AOID. Версии создаются при каждом изменении адреса.

Соответственно, более-менее стабильным идентификатором адреса является именно AOGUID. Его и возвращает «Дадата».

ХОРОШО, МНЕ ПОНРАВИЛОСЬ

Большое спасибо, все разъяснили, помогли принять правильное решение!

Оценка удовлетворенности от Иван Сергеев 5 лет назад
На рассмотрении

Поле AOID меняется при каждом обновлении, а AOGUID нет. И AOGUID тоже уникальный идентификатор адреса.

Уточните, пожалуйста, зачем нужен AOID?

Валерия, я не знал что AOID каждый раз меняется при обновлении (это точная информация?). AOGUID не уникален, так как имеются объекты с одинаковым AOGUID но с разными LIVESTATUS и NEXT и PREV идентификаторами.

Ответ

Точнее сказать, что AOID может меняться при обновлении.

В ФИАС в одной таблице лежат объекты (адреса) и их версии. Уникальный идентификатор адреса — AOGUID. Уникальный идентификатор версии адреса — AOID. Версии создаются при каждом изменении адреса.

Соответственно, более-менее стабильным идентификатором адреса является именно AOGUID. Его и возвращает «Дадата».

Можно еще один вопрос в догонку, Почему house_fias_id содержит не глобальный идентификатор дома (по аналогии с вышеперечисленным), а идентификатор записи дома?  

house_fias_id содержит HOUSEGUID. Это как раз глобальный идентификатор дома. Идентификатор записи дома (версии) — это HOUSEID. Его «Дадата» не возвращает.

Хорошо, тогда вот например дом который содержит две записи с глобальным идентификатором "2ba08204-31de-4827-8291-38da4780a3e1". Возвращая одну запись, вы какую имеете ввиду? с идентификатором записи = "2ba08204-31de-4827-8291-38da4780a3e1" или = "f0c30245-602b-4bb3-bd95-810ed181de2c" и как понять это в логике?


«Дадата» всегда возвращает актуальную версию адресного объекта (она одна). Для данного дома это запись с HOUSEID = f0c30245-602b-4bb3-bd95-810ed181de2c

В БД ФИАС актуальную версию дома можно отличить от прочих по значению ENDDATE > now()

Спасибо!

Я правильно понимаю, что актуальную запись дома надо определять по Уникальному глобальному идентификатору и ENDDATE > now() которая хранится в БД фиас? Я правильно понимаю, что в БД не может быть две и более записи удовлетворяющим этому условию?

Да, в таблице ФИАС HOUSE сочетание HOUSEGUID + (ENDDATE > now()) теоретически даёт уникальность. Две таких записи быть не должно. Но на практике это невозможно гарантировать, потому что в DBF нет constraints, и на уровне БД никто уникальность не проверяет (если где-то она и проверяется в оригинальных БД налоговой, мы этого не знаем).

Сервис поддержки клиентов работает на платформе UserEcho