Comments 14
CREATE TABLE addrs

CREATE TABLE hous


Что мотивирует Вас использовать такие названия таблиц?
Можно использовать велосипеды из статьи (один метод открытия dbf через Excel чего стоит), а можно поставить это приложение на Python и горя не знать. Оно за вас не только базу будет импортировать, но еще и правильные запросы для поискового движка Sphinx создаст.
возможность подать заявку на включение отсутствующего адреса в справочную систему

Могли бы поподробнее рассказать как реализовали данную возможность?


Иерархия объектов выглядит следующим образом:
Субъект федерации
Регион субъекта федерации
Населенный пункт
Улица
Дом

Населенный пункт может находится в населенном пункте. Пример: поселок Малино в Зеленограде

Населенный пункт может находится в населенном пункте. Пример: поселок Малино в Зеленограде

А сам Зеленоград находится в Москве. В данном случае Москва — регион, Зеленоград — НП, а поселение Малино — улица.
Выше ошибся, Зеленограда в цепочке нет и НП — это поселение Малино.
Но в качестве улицы могут быть поселения, санатории, дачные кооперативы и прочие объекты, у которых нет деления на улицы, а только номера домов.
Ну вот НП с кодом 7700000200400 в kladr-api записан как «Малино», а в dadata «г Зеленоград, п Малино».
Алгоритм действий для добавления адреса примерно такой (примеры будут на VueJS, но думаю для других фреймов будет примерно то же самое):
Посмотреть можно здесь: https://github.com/KOVCHENKO/fias/tree/master/ASPUDcomponent

Пользователь вводит информацию о своем местоположении: город/поселок/село. Далее у населенного пункта может не оказаться улиц вообще. Или домов на выбранной улице. Появляется возможность открыть модальное окно с вводом адреса. Далее введенный адрес отправляется на модерацию (отправляется по email или сохраняется в дополнительную таблицу БД для проверки).
Метод здесь:
https://github.com/KOVCHENKO/fias/blob/master/app/Http/Controllers/ApplicationController.php

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

А почему бы не использовать готовое решение? Например kladr-api или dadata (я уверен что существуют и другие подобные решения)?
Да. kladr наиболее известная штука и далеко не самая плохая, если требуются к примеру адреса регионального центра, но если дело касается поселков, то все становится сложнее. Не вспомню сейчас точный пример, но сталкивалсь со следующим: при обращении к API КЛАДР для выбора домов улицы, выдаются результаты таблицы HOUSEINT (такая тоже есть в БД ФИАС). Она выдает интервалы домов, которые необходимы для налоговой. В таблице HOUSE с домами есть дома для этой улицы, но получается, что они остаются вне выборки.

P.S. Кроме того, для проекта требовались другие дополнительные поля в БД.
Only those users with full accounts are able to leave comments. Log in, please.