数据库使用mysql,想要实现的功能是比如我有一个资源分组,资源分组下还有资源分组,然后才是资源,我要查询,或者怎么做,才能把他们显示到页面,用for循环吗
2条回答 默认 最新
- 冰思雨 2021-11-16 18:55关注
树形分层结构的表格存储问题,
- 确定资源分组有几层。
如果没有限制,那就做一个强制限制,无限的那种会对程序存在隐患。如果固定最多两次,第三次就是资源本身,那就OK。 - 建表的时候,都会建立 id 字段 和 parentId 字段,用于层级之间的关联。
有的表还建立 level 层数字段,方便后续程序的判断和处理。 - 一般情况下,对树的操作,不会一次性读取所有数据,而是进行分层查询,给定一个父节点的Id,查询它的所有子节点。
子节点的个数也要做限制,要设置一个最大个数,避免程序后期出现bug。 - 分层查询的情况比较简单,根据parentId进行查询即可,
前端每次手动展开一个节点,都请求服务端,服务端根据parentId查询出子节点的信息返回至前端,完成展开节点的操作。 - 一次性读取整棵树的情况,需要Java类也要存在树型结构才行,可以递归函数,每次重复根据父节点的分层查询即可,
递归函数查询当前节点的子节点后,将子节点添加到当前节点的子节点列表中,直到当前节点不包含子节点为止。
由于树形结构的不确定性,递归查询调用的次数和返回数据的多少都不确定,如果数据量庞大,容易爆掉内存或爆掉数据库。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 - 确定资源分组有几层。
悬赏问题
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测