数据库设计之树形层级数据

讨论 未结 精帖 2 162
绝尘
绝尘 2018-07-19

一分钟设计,树形数据存贮架构一个code字段存贮所有的“遗传基因”

设计表结构示例

数据库设计之树形层级数据设计表结构如下:



一些需求

电子商务网站中

1.商城所属地址位置存贮,怎么存?如果使用了上面表的结构 
直接存贮 code+详细描述  

2.注册用户的收获地址怎么存?
不用再想是否需要存省市县,只需要存最终地区的 code+详细描述  


3.同辖区潜在用户推荐?
用户地址存贮了,最终地址code + 详细地址,再也不愁用户数据过滤,


4.会员购物物流的分发怎么处理?
有了2中的收获地址管理,很容易进行物流分发数据查询
select * from addr a where a.code like '100-xxx-xxx%'

 更多变态需求....

综上所述一句话,你只要使用了上图的表设计,存贮地址都是 code+详细,定位数据相当容易


如果在一个比较大的全国信息化系统中是否也存在这样相似的业务关联需求呢?
这是一个通用的树形数据查询解决方案,数据的层级关联不止有pid,还有更强大的 code字段的巧妙设计存贮

更多场景

1.组织架构中的部门表
2.一个比较大的cms网站中的文章栏目表
3.小兔子家族族谱关系表(只记录下小兔子母亲)
等待你发现更多使用场景


个人博客地址:http://1216.top 码云/GitHub:https://gitee.com/tc608
还有不明白?追问
  • 孟人二
    2018-07-20

    子查询所有父级,sql怎么写,赐教

    0 回复
  • 绝尘
    绝尘 (楼主)
    2018-07-23

    @孟人二 如果当前code为 100-101-103
    那么当前节点的父级点为,100和100-101
    使用的时候 程序中写一个 父节点处理函数,就是截取当前code而得到,

    0 回复