web开发遇到的问题与解决思路

最近开发一个船舶项目,遇到的问题

[问题][6]:一个船舶上物料有很多分类,分类下面还存在分类,分类下面还存在分类,有一些分类下面只存在2级关系分类,有的是3级,有的是4级,如果是最终的类别还要带具体物料的名字以及基本信息:


[解决思路][6]:

1.创建表结构

以下为关键字段

字段名字类型备注
storesIdbigint(20)物料ID,主键
parentIdbigint(20)父类id
namevarchar(64)物料名称
storesTypevarchar(64)物料or类别

2.由于主键唯一性,所以parentId放上一类别的主键id,依次循环放置parentId,然后循环查询出来就行里,这样依赖,看似解决了,问题出在查询这里,因为存在2级3级4级等不同的依赖关系,查询要查询多少次呢?查询2次不行,4次也不行。

3.然后只能用递归查询来解决问题了,[代码如下][6]

这里写图片描述

4.查询以json格式传回前端页面

{
  "code": "200",
  "message": "OK",
  "data": [
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463977621000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463977786000,
      "storesId": 10067,
      "storesType": "CATEGORY",
      "code": "WL0002",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": [
        {
          "displayOrder": 4,
          "status": "NORMAL",
          "createBy": 1,
          "createTime": 1463987635000,
          "updateBy": 0,
          "updateTime": null,
          "version": 0,
          "lastUpdate": 1463987727000,
          "storesId": 10070,
          "storesType": "CATEGORY",
          "code": "SS0001",
          "name": "物料2号",
          "specification": "12×1",
          "description": "没有描述",
          "unit": "T",
          "parentId": 10067,
          "children": [
            {
              "displayOrder": 4,
              "status": "NORMAL",
              "createBy": 1,
              "createTime": 1463991922000,
              "updateBy": 0,
              "updateTime": null,
              "version": 0,
              "lastUpdate": 1463991922000,
              "storesId": 10078,
              "storesType": "CATEGORY",
              "code": "SS0011",
              "name": "物料2号",
              "specification": "12×1",
              "description": "没有描述",
              "unit": "T",
              "parentId": 10070,
              "children": [
                {
                  "displayOrder": 4,
                  "status": "NORMAL",
                  "createBy": 1,
                  "createTime": 1463991946000,
                  "updateBy": 0,
                  "updateTime": null,
                  "version": 0,
                  "lastUpdate": 1463991946000,
                  "storesId": 10079,
                  "storesType": "CATEGORY",
                  "code": "SS0012",
                  "name": "物料2号",
                  "specification": "12×1",
                  "description": "没有描述",
                  "unit": "T",
                  "parentId": 10078,
                  "children": null }
              ]
            }
          ]
        },
        {
          "displayOrder": 4,
          "status": "NORMAL",
          "createBy": 1,
          "createTime": 1463987643000,
          "updateBy": 0,
          "updateTime": null,
          "version": 0,
          "lastUpdate": 1463987732000,
          "storesId": 10071,
          "storesType": "CATEGORY",
          "code": "SS0002",
          "name": "物料2号",
          "specification": "12×1",
          "description": "没有描述",
          "unit": "T",
          "parentId": 10067,
          "children": null
        }
      ]
    },
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463977646000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463977787000,
      "storesId": 10068,
      "storesType": "CATEGORY",
      "code": "WL0003",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": [
        {
          "displayOrder": 4,
          "status": "NORMAL",
          "createBy": 1,
          "createTime": 1463991817000,
          "updateBy": 0,
          "updateTime": null,
          "version": 0,
          "lastUpdate": 1463991816000,
          "storesId": 10076,
          "storesType": "CATEGORY",
          "code": "SS0009",
          "name": "物料2号",
          "specification": "12×1",
          "description": "没有描述",
          "unit": "T",
          "parentId": 10068,
          "children": null
        },
        {
          "displayOrder": 4,
          "status": "NORMAL",
          "createBy": 1,
          "createTime": 1463991865000,
          "updateBy": 0,
          "updateTime": null,
          "version": 0,
          "lastUpdate": 1463991864000,
          "storesId": 10077,
          "storesType": "CATEGORY",
          "code": "SS0010",
          "name": "物料2号",
          "specification": "12×1",
          "description": "没有描述",
          "unit": "T",
          "parentId": 10068,
          "children": null
        }
      ]
    },
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463977660000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463977790000,
      "storesId": 10069,
      "storesType": "CATEGORY",
      "code": "WL0004",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": null
    },
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463991048000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463991047000,
      "storesId": 10072,
      "storesType": "CATEGORY",
      "code": "SS0003",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": null
    },
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463991240000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463991240000,
      "storesId": 10073,
      "storesType": "CATEGORY",
      "code": "SS0004",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": null
    },
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463991611000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463991611000,
      "storesId": 10074,
      "storesType": "CATEGORY",
      "code": "SS0005",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": null
    },
    {
      "displayOrder": 4,
      "status": "NORMAL",
      "createBy": 1,
      "createTime": 1463991811000,
      "updateBy": 0,
      "updateTime": null,
      "version": 0,
      "lastUpdate": 1463991815000,
      "storesId": 10075,
      "storesType": "CATEGORY",
      "code": "SS0008",
      "name": "物料2号",
      "specification": "12×1",
      "description": "没有描述",
      "unit": "T",
      "parentId": 0,
      "children": null
    }
  ]
}

5.如果有更好的解决思路,可以留言交流。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一缕阳光直射你的心扉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值