如何处理同城多名场景
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 上作为未来审查的候选人。
以下是排除首字母的原因示例:
基辅=基辅
利沃夫 != 基辅
好的,我有一个列表,上面有一些联系人,由各自的人填写。但是住在同一个城市的人可能会写不同的城市名称(我无法控制城市名称可能会随着政府的变化而变化)。 例如:
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 上作为未来审查的候选人。
以下是排除首字母的原因示例: 基辅=基辅 利沃夫 != 基辅