本文主要是介绍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 + "," + curidstrparentcate.ChildID = newchildido.Update(&parentcate, "ChildID") } else {parentcate.ChildID = curidstro.Update(&parentcate, "ChildID") } }
- 把其父类的ChildID列增加,如之前ChildID=”1,3”,新增栏目id=5,则改变父栏目ChildID=”1,3,5”,如果父栏目
ChildID == "0"
,表示新增的栏目是其父栏目的第一个子栏目,则直接替换parentcate.ChildID = curidstr
删除一个栏目
- 新增栏目的逆过程,考虑其父类的ChildID项,如要删除
ChildID="19,20,21"
的子栏目,分为三种情况
- 删除
id=19
的栏目,删除之后ChildID=",20,21"
- 删除
id=20
的栏目,删除之后ChildID="19,,21"
- 删除
id=21
的栏目,删除之后ChildID="19,20,"
- 删除
- 针对1,3两种情况,利用
strings.Trim(newchildidOfDel, ",")
函数可以消除,对于2情况,利用strings.Replace(newchildidOfDel, ",,", ",", -1)
函数具体用法 - 当栏目没有子栏目的时候才允许删除,否则不能删除,函数返回1
这篇关于2016-12-7-无限极分类在栏目动态分配中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!