weixin_46068850 2021-11-16 15:26 采纳率: 83.3%
浏览 20
已结题

Java,mysql查询,资源分组下的资源

数据库使用mysql,想要实现的功能是比如我有一个资源分组,资源分组下还有资源分组,然后才是资源,我要查询,或者怎么做,才能把他们显示到页面,用for循环吗

  • 写回答

2条回答 默认 最新

  • 冰思雨 2021-11-16 18:55
    关注

    树形分层结构的表格存储问题,

    1. 确定资源分组有几层。
      如果没有限制,那就做一个强制限制,无限的那种会对程序存在隐患。如果固定最多两次,第三次就是资源本身,那就OK。
    2. 建表的时候,都会建立 id 字段 和 parentId 字段,用于层级之间的关联。
      有的表还建立 level 层数字段,方便后续程序的判断和处理。
    3. 一般情况下,对树的操作,不会一次性读取所有数据,而是进行分层查询,给定一个父节点的Id,查询它的所有子节点。
      子节点的个数也要做限制,要设置一个最大个数,避免程序后期出现bug。
    4. 分层查询的情况比较简单,根据parentId进行查询即可,
      前端每次手动展开一个节点,都请求服务端,服务端根据parentId查询出子节点的信息返回至前端,完成展开节点的操作。
    5. 一次性读取整棵树的情况,需要Java类也要存在树型结构才行,可以递归函数,每次重复根据父节点的分层查询即可,
      递归函数查询当前节点的子节点后,将子节点添加到当前节点的子节点列表中,直到当前节点不包含子节点为止。
      由于树形结构的不确定性,递归查询调用的次数和返回数据的多少都不确定,如果数据量庞大,容易爆掉内存或爆掉数据库。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测