数据库使用mysql,想要实现的功能是比如我有一个资源分组,资源分组下还有资源分组,然后才是资源,我要查询,或者怎么做,才能把他们显示到页面,用for循环吗
2条回答 默认 最新
- 冰思雨 2021-11-16 18:55关注
树形分层结构的表格存储问题,
- 确定资源分组有几层。
如果没有限制,那就做一个强制限制,无限的那种会对程序存在隐患。如果固定最多两次,第三次就是资源本身,那就OK。 - 建表的时候,都会建立 id 字段 和 parentId 字段,用于层级之间的关联。
有的表还建立 level 层数字段,方便后续程序的判断和处理。 - 一般情况下,对树的操作,不会一次性读取所有数据,而是进行分层查询,给定一个父节点的Id,查询它的所有子节点。
子节点的个数也要做限制,要设置一个最大个数,避免程序后期出现bug。 - 分层查询的情况比较简单,根据parentId进行查询即可,
前端每次手动展开一个节点,都请求服务端,服务端根据parentId查询出子节点的信息返回至前端,完成展开节点的操作。 - 一次性读取整棵树的情况,需要Java类也要存在树型结构才行,可以递归函数,每次重复根据父节点的分层查询即可,
递归函数查询当前节点的子节点后,将子节点添加到当前节点的子节点列表中,直到当前节点不包含子节点为止。
由于树形结构的不确定性,递归查询调用的次数和返回数据的多少都不确定,如果数据量庞大,容易爆掉内存或爆掉数据库。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 - 确定资源分组有几层。
悬赏问题
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀