Советы и инструменты, помогающие нормализовать базу данных

У меня есть 7 таблиц MySQL, которые содержат частично перекрывающиеся и избыточные данные примерно в 17000 строках. Во всех таблицах указаны названия и адреса школ. Иногда одна и та же школа дублируется в таблице с немного другим именем, а иногда одна и та же школа появляется в нескольких таблицах, опять же, с небольшими отличиями в ее названии или адресе.

Моя задача - создать единую таблицу с идентификатором , поле имени и города / идентификатора города, которое будет содержать данные из 7 таблиц. Для городов будет отдельная таблица с полями id и name.

Это осложняется тем фактом, что в исходных таблицах нет отдельного поля для города, оно должно быть извлечено из поля адреса, которое содержит данные в совершенно разных форматах.

Я понимаю, что большая часть этого должна быть сделанное вручную, я ожесточил свою душу, и я готов иметь дело с адом, который это навлечет на меня. Мои вопросы:

  • как бы вы начали такое задание? Какова была бы разумная стратегия для максимальной автоматизации?
  • Есть ли какие-нибудь инструменты, которые могли бы сделать это быстрее? как что-то, что может сравнивать строки, определять их «сходство» и предлагать возможные дублирования?

Спасибо!

1
задан Erick Robertson 21 April 2011 в 14:38
поделиться