2016-12-7-无限极分类在栏目动态分配中的应用

在Atom中编辑MakeDown文件

  • 打开新建的.md文件,按住Ctrl+Shift+m就可以预览,非常方便# 数据库的创建


  • 栏目的数据库有6列,分别为Id,Name,ParentID,ChildID,Depth,Path.

  • 分别代表栏目的id,栏目名,父栏目的id,子栏目的id(若没有则默认为0),层深和路径.
  • 例如:Id=3的栏目名字为行政机构,其父栏目为学院机构,Id为1,而学院机构的父栏目为学>院概况,因此行政机构的层深为3,Path为学校概况/学院机构/行政机构

新增一个栏目


  • 若新增一个一级栏目,输入其栏目名与父栏目id(即0,因为其没有父类).默认其层深Depth=1,Path=栏目名
  • 增加一个二级或三级栏目,输入栏目名和父栏目id,找到其父栏目对应的列,读取其层深和路径

    if o.Read(&parentcate, "Id") == nil {
    var newchildid string
    var curidstr string
    curidstr = strconv.FormatInt(curid, 10)
    
    if parentcate.ChildID != "0" {
     newchildid = parentcate.ChildID + "," + curidstr
     parentcate.ChildID = newchildid
     o.Update(&parentcate, "ChildID")
    } else {
     parentcate.ChildID = curidstr
     o.Update(&parentcate, "ChildID")
    }
    }
  • 把其父类的ChildID列增加,如之前ChildID=”1,3”,新增栏目id=5,则改变父栏目ChildID=”1,3,5”,如果父栏目ChildID == "0",表示新增的栏目是其父栏目的第一个子栏目,则直接替换parentcate.ChildID = curidstr

删除一个栏目

  • 新增栏目的逆过程,考虑其父类的ChildID项,如要删除ChildID="19,20,21"的子栏目,分为三种情况
    1. 删除id=19的栏目,删除之后ChildID=",20,21"
    2. 删除id=20的栏目,删除之后ChildID="19,,21"
    3. 删除id=21的栏目,删除之后ChildID="19,20,"
  • 针对1,3两种情况,利用strings.Trim(newchildidOfDel, ",")函数可以消除,对于2情况,利用strings.Replace(newchildidOfDel, ",,", ",", -1)函数具体用法
  • 当栏目没有子栏目的时候才允许删除,否则不能删除,函数返回1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值