Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Документация процесса обновления #63

Closed
jungornti opened this issue Oct 12, 2016 · 2 comments
Closed

Документация процесса обновления #63

jungornti opened this issue Oct 12, 2016 · 2 comments

Comments

@jungornti
Copy link

Добрый день, хотелось бы получить комментарий по поводу обновления базы.

Я посмотрел исходники и обнаружил только такую информацию — адреса только добавляются или обновляются. Получается, что обновление физически не может повредить или удалить связанные объекты, это верно?

И ещё вопрос — я правильно понимаю, что при обновлении определённые адреса могут обновиться и в случае, например, переименования улицы, ссылающиеся объекты автоматически получат корректные адреса по новой улице? Но может быть и ситуация, когда этот объект не будет обновлён и ссылающиеся объекты будут по факту со старым неактуальным адресом?

Может быть стоит отразить этот момент в документации?

@Yuego
Copy link
Owner

Yuego commented Oct 12, 2016

Я посмотрел исходники и обнаружил только такую информацию — адреса только добавляются или обновляются. Получается, что обновление физически не может повредить или удалить связанные объекты, это верно?

Да, всё верно.

И ещё вопрос — я правильно понимаю, что при обновлении определённые адреса могут обновиться и в случае, например, переименования улицы, ссылающиеся объекты автоматически получат корректные адреса по новой улице? Но может быть и ситуация, когда этот объект не будет обновлён и ссылающиеся объекты будут по факту со старым неактуальным адресом?

Всё зависит исключительно от разработчиков БД ФИАС.
В импортированной базе хранятся только самые последние версии каждого адресного объекта (уникальность по AOGUID, он же - первичный ключ, на который будет ссылка через ForeignKey). В самой ФИАС хранятся все существующие версии каждого объекта.
Соответственно, при обновлении проверяется актуальность объекта (сравниваются даты последнего обновления объекта в БД и импортируемого, а так же проверяется отсутствие у импортируемой записи потомков - пустое поле NEXTID).
Если запись о переименовании объекта добавлена в БД и, соответственно, в дельта-архив, она будет актуализирована.

Тут нужно уточнить.
У каждого адресного объекта есть два, скажем так, базовых идентификатора:
AOID - уникальный идентификатор записи об объекте. Для каждого объекта может существовать множество записей.
AOGUID - уникальный идентификатор объекта.
Так вот, если переименуется улица - будет добавлена запись с тем же AOGUID, но новым AOID.
Даже если в одном городе есть две улицы с одинаковыми названиями, при условии, что в ФИАС для каждой из них заведён отдельный адресный объект (а именно так и должно быть), то всё должно корректно обновляться.

Может быть стоит отразить этот момент в документации?

В документацию нужно многое добавить.
Ещё очень хочется переехать на sphinx и оформить доки по-человечески, но пока нет возможности.
Был бы рад любой помощи.

@jungornti
Copy link
Author

Сделал pull request #65 для ведения документации через sphinx. Так как документация это процесс творческий, я предлагаю Артёму внести основные стилистические правки (порядок разделов, текст, оглавление). А дальше уже и контрибьюторам будет проще документировать.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants