地区管理.md 2.3 KB

地区信息

商城应用

在mall4j商城系统里,用户在填写收货地址的时候都需要用到地区信息。那么为系统提供一套公用的地区信息就非常有必要。例如:

在后台中,可以对地区进行管理。

1566357597422

1566357664626

一般情况下,我们可以将地区进行分级:

  1. 省份
  2. 城市
  3. 县区
  4. 街道

对于大多数系统,一般整理到区县级别即可

数据库设计

整体实体类关系如下图:

1566288650463

model实体类:
@Data
@TableName("tz_area")
public class Area implements Serializable {
    private static final long serialVersionUID = -6013320537436191451L;
    @TableId
    @ApiModelProperty(value = "地区id",required=true)
    private Long areaId;

    @ApiModelProperty(value = "地区名称",required=true)
    private String areaName;

    @ApiModelProperty(value = "地区上级id",required=true)
    private Long parentId;

    @ApiModelProperty(value = "地区层级",required=true)
    private Integer level;

    @TableField(exist=false)
    private List<Area> areas;
}

  • areaId ,地区id
  • areaName,地区名称
  • level,级别,根据上面所说的地区枚举
  • parentId ,地区上级id
数据来源:

在添加数据时,我们可以根据 worldArea 开源项目,导入对应的数据mysql 数据库脚本,包含世界各地区的地区编码以及中文名称。或者通过淘宝进行获取。地区库是十分重要的,且定义好后,不方便轻易调整。所以需要慎重添加地区库。

注意:
  1. 国家地区不是一成不变的,不断的会有地区和地区之间的合并,又或者是地区的分拆。因此,建议可以以淘宝的地区库为准,及时对地区库经行更新。
  2. 地区的分级只是大体的分级,实际上,会存在镇级市、县级市等等。
  3. 如果对接其他公司的服务,地区编号可能存在不同,需要做好对应映射关系。
  4. 如果有基于微信公众号的产品,一些用户设置所在地为国外,可以基于自己产品的情况,保存用户信息可以存储成中国。