假设我有一个客户表,每个客户都有一个地址。我的任务是设计一个对象模型,允许按类似的地址对客户进行分组。例如:
查询应以某种方式返回:
1 Similar_Address_Key1
5 Similar_Address_Key1
2 Similar_Address_key2
3 Similar_Address_key2
4 Similar_Address_key2
实现这一目标的最佳方法是什么?请注意,地址不一致(某些地址有“Avenue”,其他地址有“Av”,公寓号不同)。现有的名称/地址数据无法更正,因此在表格上执行GROUP BY(地址)是不可能的。
我正在考虑添加一个SIMILAR_ADDRESSES表来获取一个地址,对其进行评估并给它一个键,如下所示:
cust_key address similar_addr_key
1 123 Main St, #A; Los Angeles, CA 90032 1
2 92 N. Portland Ave, #1; Pasadena, CA 91107 2
3 92 N. Portland Avenue, #2; Pasadena, CA 91107 2
4 92 N. Portland Av #4; Pasadena, CA 91107 2
5 123 Main Street, #C; Los Angeles, CA 90032 1
然后按类似地址键分组。但问题是如何最好地完成“评估”部分。一种方法是修改SIMILAR_ADDRESSES表中的地址,使它们保持一致并忽略apt,#或suite之类的内容,并为每个完全匹配分配一个“键”。我想到的另一种不同的方法是将地址提供给Geolocator服务并将纬度/经度值保存到表中,并使用这些值生成类似的地址密钥。
有什么想法吗?