Модель почтовых адресов в реляционных БД
Почтовые адреса используют в реляционных БД, просто записывая их в одно текстовой поле или распределяя по отдельным полям типа город, улица, номер дома, корпус, квартира (возможно, вынося города и улицы в отдельные таблицы). В данной статье хочу поделиться одной моделью представления, которая коррелирует с моделью адресов ГАР ФИАС и позволяет выполнять широкий спектр действий с адресами средствами языка SQL.
Как известно, вручную написанные адреса обладают рядом неприятных свойств, затрудняющих их программное использование. Это и многовариативность написания одного и того же элемента, и пропуски, и искажения, и добавление лишнего. Идея состоит в том, чтобы выделить адресные элементы, нормализовать их, по возможности привязать к элементам ГАР ФИАС и сохранять в таблице БД не только нормализованные строки элементов адреса, но и GUID привязанных к ГАР элементов. При таком представлении возможно средствами SQL производить поисковые операции, находить дубликаты и пр., что затруднительно делать на исходных текстах адресов.
Данная модель применялась в проекте Досье компании Preferentum для системы загрузки и анализа неструктурированной и полуструктурированной информации (выгрузки разных баз и информационных систем). Для нормализации и привязки к ГАР используется SDK Pullenti Address, которое автор и разрабатывает.



















