weixin_46068850 2021-11-16 15:26 采纳率: 80%
浏览 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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀