用空间换时间(解决树状结构的父子查询问题)

     在做像区域或权限控制等树状结构时,常要用到查询某一父区域下的所有子区域,以及查询某一子区域下的各级父区域的功能。如果数据结构是存在数据库中时,若用嵌套的方式来解决该问题无疑是很费时。

     若在数据库中添加一个字段用来保存父子关系,对于解决该问题是大有益处的。

    

     例如:区域的基本结构为[id,名称,父类id],可以增加关系列[id,名称,父类id,关系id]

 

                     福建

           福州                 厦门

      鼓楼   台江        思明     湖里

 

    福建[01,福建,null,(01|)]

    福州[02,福州,01,(01|02|)]

    厦门[03,厦门,01,(01|03|)]

    鼓楼[04,鼓楼,04,(01|02|04|)]

    台江[05,台江,05,(01|02|o5|)]

    思明[06,思明,03,(01|03|06|)]

    湖里[07,湖里,03,(01|03|07|)]

 

    如上的结构可看出在保存里把父区域的关系列加上自身id即为本身的关系列,在查询父类时可直接通过查询关系列,查询子区域时即查询关系列是否包含本身关系列,这样只需通过简单的sql语句即可完成原本比较复杂的操作。    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值