为了账号安全,请及时绑定邮箱和手机立即绑定

基于中台思想的物流系统设计(三):构建物流地址能力

2018.12.06 23:19 528浏览

一、引言

在电商物流领域我们会涉及到地址,其中包括了基础的四级地址和用户填写的地址。四级地址在整个从下单到收货的业务流程中都会用到,因此设计的时候要考虑如何最大限度地提高QPS。用户地址在下单的时候让用户填写或者选择,然后存在交易订单和物流订单上,后续的流程一般不会变,如果用户需要修改地址,直接变更交易订单和物流订单的地址信息即可,因此设计的时候主要考虑满足各种用户地址场景。

二、物流地址数据模型设计



1、dvc_division表

描述:四级地址表

表结构:



上面的表结构以一种一维的角度描述了四级地址,可能不太直观,下面用一个例子来说明四级地址是怎么组织的:


四级地址第一级:

省份编码两位,从1开始到34代表34个省级行政区(23省+4直辖市+5自治区+2特别行政区),以浙江为例为8

四级地址第二级:

城市编码两位,从01开始递增,省份+城市构成二级地址,以杭州为例就是801

四级地址第三级:

区域编码两位,从01开始递增,省份+城市+区域构成三级地址,以杭州西湖区为例就是80103

四级地址第四级:

街道编码两位,从01开始递增,省份+城市+区域+街道构成四级地址,以浙江省杭州市西湖区古荡街道为例就是8010301

上面的每一级地址都通过parent_code关联上一级地址,因此只要知道任意一级地址,都可以把整个四级地址都查出来。

2、user_address表

描述:用户地址表

表结构


索引:

user_id普通索引

三、四级地址库高并发设计

四级地址库的使用场景是查询非常多,修改和创建几乎没有,因此我们首先想到的是使用缓存。对于缓存,有基于redis的集中式缓存,也有基于JVM的本地缓存,考虑到四级地址库的使用场景,基于redis的集中式缓存在后期不一定能支撑巨大的查询量,因此我们从一开始就选择基于JVM的本地缓存,下面是对本地缓存的技术选型:



作者:银河1号
链接:https://www.jianshu.com/p/1170048fa1fc


点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消