“多对一”地址转换问题

描述不是很清楚,重新描述下。A 系统传过来的 省份、地市、区县、详细地址(每次分4个字段,一起传过来) ,这4个都需要在 B系统中进行转换,换成B系统对应的的规范值。当前的设计是,B系统设计地址转换页面,先让业务人员进行维护(如图所示,其中扩展地址对应的是A系统传过来的地址),然后再在代码里面查表进行地址转换(异常情况下,业务先维护地址信息,A系统会重新发数据过来)。但是这样做,会出现“多对一”的映射。请问 B系统怎么处理比较好。图片说明

正则表达式匹配就行,把中间带有这种字眼的全部转化下就行了。

关键是这种数据很多,不可能都用正则表达式匹配啊

你始终需要对A系统传过来的数据做判断,正则不正好吗?在B系统那边定义所有省份和直辖市的关键字,通过这些省份关键字对A系统传过来的相关数据段做正则匹配替换。
或者约束A系统传过来的格式,比如新疆,新疆自治区,广东,广东广州市,到B系统这边统一保留前面两个字符。

省份、地市、区县、详细地址,分为4个字段从 A 系统传到 B系统的,比如“南京市”,A系统也有可能传“宁”,而没有所谓的关键字了。

按照你的描述,你应该只需对省份这个字段内容匹配即可啊,后面三个字段B系统转换时并不关心。或者你想表达意思是省份字段有可能为空,只传"","宁","",""这四个字段,其中三个为空?如果是这样,我觉得应该在A系统传过来时先约束好条件更好,让省份字段不能为空。

描述不是很清楚,重新描述下。A 系统传过来的 省份、地市、区县、详细地址(每次分4个字段,一起传过来) ,这4个都需要在 B系统中进行转换,换成B系统对应的的规范值。当前的设计是,B系统设计地址转换页面,先让业务人员进行维护(如图所示),然后再在代码里面查表进行地址转换(异常情况下,业务先维护地址信息,A系统会重新发数据过来)。但是这样做,会出现“多对一”的映射。图片说明

图中,扩展地址都是对应A系统 省份、城市、地区、街道 可能传过来的地址数据

设置对应关系时,A系统与B系统对应关系的那个字段在数据库不可重复