售前咨询
技术支持
渠道合作

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

1.1. 前言

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

1.2. 单树到多树的演变

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

mysql

1.3. 结构改造

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

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

  • 找出所有的省
  • 跟新地区top_layer_id为自己的省ID

1.4. 对表进行操作

  • 查看 ‘广州’ 的相关信息
  • 查看 ‘广州’ 所有孩子
  • 查看 ‘广州’ 所有孩子 和 深度 并显示层级关系
  • 显示 ‘广州’ 的直系祖先(包括自己)
  • 向 ‘广州’ 插入一个地区 ‘北沙区’

 

 

文章转载来自:ttlsa.com

上一篇:

下一篇:

相关文章