ФИАСовский идентификатор объекта адреса.
Объясните, пожалуйста, почему объекты адреса ссылаются на поле AOGUID фиасовской структуры, а не на уникальное поле AOID?
Ответ
Поле 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
Точнее сказать, что AOID может меняться при обновлении.
В ФИАС в одной таблице лежат объекты (адреса) и их версии. Уникальный идентификатор адреса — AOGUID. Уникальный идентификатор версии адреса — AOID. Версии создаются при каждом изменении адреса.
Соответственно, более-менее стабильным идентификатором адреса является именно AOGUID. Его и возвращает «Дадата».