好的,我有一个列表,其上有一些联系人,由各自的人填写。但是居住在同一个城市的人可能会写出不同的城市名称(我不会对城市的名称有所控制,城市的名称可能随着政府的变化而变化)。 例如:
NAME CITY
John Banaglore
Amit Bengaluru
这里班加罗尔和班加罗尔指的是同一个城市。我怎样才能确保(我的编程方式)我的系统在遍历列表时不会被视为两个不同的城市而是一个城市。
我能想到的一个解决方案是在每个城市都附加一个独特的ID概念,但这需要重新创建列表,而且我必须训练我的联系人关于唯一的id概念。 任何想法都表示赞赏。
如果您认为此帖子不属于此处或更新标记,请随时将此帖子发送至任何其他stackexchange.com网站。
答案 0 :(得分:3)
我建议创建一个表alias_table
,将城市别名映射到一个公共名称:
+------------+-----------+
| city_alias | city_name |
+------------+-----------+
| Banaglore | Bangalore |
| Bengaluru | Bangalore |
| Bangalore | Bangalore |
| Mumbai | Bombay |
| Bombay | Bombay |
+------------+-----------+
如果您想在OP中对表格进行任何操作,可以将CITY
列加入上面的city_alias
列,如下所示:
SELECT *
FROM name_table nt INNER JOIN alias_table at
ON nt.CITY = at.city_alias
答案 1 :(得分:0)
我认为最好的方法是从现有城市列表中提供选择,并且不允许用户手动输入。
但如果您已经拥有数据,那么使用@Tim Biegeleisen提出的别名表会更可靠
此外,作为一个例子,可以添加一些自动化来检查在不是第一个字母的情况下忽略2个字的差异是正确的,将它放在别名表上,标记作为候选用于将来的审查。
以下是排除第一个字母的原因示例: 基辅=基辅 利沃夫!=基辅