Другое возможное решение (при условии, что вам действительно нужны надежные адресные данные, а вы не просто используете адреса для предотвращения дублирования учетных записей) - это использовать стороннюю веб-службу для стандартизации адресов, предоставляемых вашими пользователями.
Это работает следующим образом - ваша система принимает адрес пользователя через онлайн-форму. Ваша форма передает адрес пользователя стороннему веб-сервису по стандартизации адресов. Веб-сервис возвращает вам тот же адрес, но теперь с данными, стандартизированными в отдельные поля адреса, и с применением стандартных сокращений и форматов. Ваше приложение отображает этот стандартизированный адрес вашему пользователю для подтверждения перед попыткой сохранить данные в вашей БД.
Если все адреса пользователей проходят этап стандартизации и в вашу БД сохраняются только стандартизированные адреса, то поиск дублирующих записей должен быть значительно упрощен, поскольку вы сейчас сравниваете яблоки с яблоками.
Одной из таких сторонних услуг является Интерактивная служба Global Address , которая включает Германию в список поддерживаемых стран, а также имеет онлайн-демонстрацию, демонстрирующую, как работает их служба (демонстрационную ссылку можно найти на этой странице. веб-страница).
Есть очевидный недостаток этого подхода. Однако с положительной стороны:
- вам не нужно создавать и поддерживать собственные метаданные стандартизации адресов
- вам не нужно постоянно улучшать процедуры стандартизации адресов, а
- Вы можете сосредоточить свои усилия на разработке программного обеспечения на тех частях приложения, которые соответствуют вашим требованиям
Отказ от ответственности: я не работаю на Глобальный адрес и не пробовал пользоваться их услугами. Я просто привожу их в качестве примера, поскольку у них есть онлайн-демонстрация, с которой вы можете поиграть.