MySQL多层级结构-区域表树改造

  • A+
所属分类:MySQL python

1.1. 前言

之前我们的地区表的层级结构,可以说是一颗数树的祖先是 '中国'。在一个树的结构下当数据量大的时候要更新或添加一个地区的时候跟新的数据量平均是半个表。这看以来显然是不合理的。

1.2. 单树到多树的演变

原来我们的是以中国为粒度来维护整张表的层级关系。现在我们将变成以 '省' 的粒度来维护地区的层级关系。并且往往我们使用也都是以省来做最大的粒度。演变图如下:

mysql

1.3. 结构改造

由于我们的粒度变成了 '省',就代表我们之后的操作都是基于某个省下面所有地区进行的。因此我们需要为每个地区添加一个字段标识了他是属于哪个 '省' 的。

将每个地区的 top_layer_id 更新成自己的 '省' ID。

  • 找出所有的省

  • 跟新地区top_layer_id为自己的省ID

1.4. 对表进行操作

  • 查看 '广州' 的相关信息

  • 查看 '广州' 所有孩子

  • 查看 '广州' 所有孩子 和 深度 并显示层级关系

  • 显示 '广州' 的直系祖先(包括自己)

  • 向 '广州' 插入一个地区 '北沙区'

 

昵称:HH
QQ:275258836
ttlsa群交流沟通(QQ群②:6690706 QQ群③:168085569 QQ群④:415230207(新) 微信公众号:ttlsacom)

感觉本文内容不错,读后有收获?

逛逛衣服店,鼓励作者写出更好文章。

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
HH

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: