Вы собираетесь бороться.Лично я думаю, что я бы подумал о том, чтобы иметь процесс, который пытается обновить данные в базе данных и исправить их.
Вы можете изменить систему, которая вводит данные (или, если это невозможно, иметь внешний процесс, которыйпробегает данные, как только они попадают в базу данных), что делает что-то вроде следующего:
- Против известных списков таких вещей, как города / штаты / страны и т. д. для обнаружения опечаток.регулярные ошибки и сокращения.Например, "Проспект" / "Пр."или "улица" / "св."и нормализует значения.
- Измените систему ввода для выполнения такого рода проверки и / или предоставьте пользователям интерфейс поиска / проверки адреса, который позволяет затем искать адрес по некоторым известным значениям (почтовый индекс / почтовый индекс).код и т. д.)Такие данные можно купить у разных поставщиков в зависимости от того, где вы находитесь.
Если все это работает (я сомневаюсь, что вы получите 100%, если не предоставите механизм, с помощью которого эти вещи, которые могутне будут автоматически исправлены помечены как вмешательство человека), тогда ваши отчеты будут такими же простыми, как SELECT DISTINCT
...