如何处理同城多名场景

How to handle scenario of same city with multiple names

好的,我有一个列表,上面有一些联系人,由各自的人填写。但是住在同一个城市的人可能会写不同的城市名称(我无法控制城市名称可能会随着政府的变化而变化)。 例如:

NAME                CITY

John               Banaglore
Amit               Bengaluru

这里的班加罗尔班加罗尔指的是同一个城市。在遍历列表时,我如何确保(我以编程方式)我的系统不认为是两个不同的城市,而是一个。

我能想到的一个解决方案是为每个城市附加一个唯一 ID 的概念,但这需要重新创建列表,而且我还必须就唯一 ID 概念对我的联系人进行培训。 任何想法表示赞赏。

如果您认为此 post 不属于此处或更新标签,请随时将其路由到任何其他 stackexchange.com 站点。

我建议创建一个 table alias_table 将城市别名映射到一个通用名称:

+------------+-----------+
| city_alias | city_name |
+------------+-----------+
| Banaglore  | Bangalore |
| Bengaluru  | Bangalore |
| Bangalore  | Bangalore |
| Mumbai     | Bombay    |
| Bombay     | Bombay    |
+------------+-----------+

当您想对 OP 中的 table 进行任何操作时,您可以将 CITY 列连接到上面的 city_alias 列,如下所示:

SELECT *
FROM name_table nt INNER JOIN alias_table at
ON nt.CITY = at.city_alias

我认为最好的方法是从现有城市列表中提供选择,并且不允许用户手动输入。

但是,如果您已经有数据,则使用@Tim Biegeleisen

提出的别名 table 更可靠

此外,可以添加一些自动化,例如,检查在不是第一个字母的情况下忽略 2 个单词差异是否正确,方法是将其放在带有标记的别名 table 上作为未来审查的候选人。

以下是排除首字母的原因示例: 基辅=基辅 利沃夫 != 基辅