zoukankan      html  css  js  c++  java
  • Xml 在无限分类中的运用

    一直考虑 关系型数据库 中实现无限分类的高效办法
    尝试过 编码法 但发现限制颇多最终放弃了
    也尝试过一般论坛使用的分类方法 但总觉得维护不是很方便
    至于更高级的分类算法 限于自身数学水平有限 也就不考虑

    而然想到 用 Xml 存储结构 数据库记录数据和结果
    Xml 存储树型结构有着与身具来的优越性 而且这样维护 比较简单, 也不要用递归

    xml 存储结构后 用 Xsl 格式化 直接得到适合数据库用的平行分类数据
    然后直接入库就可以了
    但还是一个小问题 就是分类一多 更新的条目就比较多了
    但也可以通过判断 把更新控制在 1-2 个大类下
    这样相对来说 更新条目会少点

    以下是简单示例 至于 Xsl 卖个关子 保密下

    Xml 分类结构文件

    <?xml version="1.0" encoding="utf-8"?>
    <Categorys>
      
    <Category ID="1" RootID="1">
        
    <Category ID="3" RootID="1">
          
    <Category ID="4" RootID="1">
            
    <Category ID="7" RootID="1" />
          
    </Category>
        
    </Category>
        
    <Category ID="5" RootID="1">
          
    <Category ID="6" RootID="1">
            
    <Category ID="8" RootID="1" />
          
    </Category>
        
    </Category>
      
    </Category>
      
    <Category ID="2" RootID="2" />
    </Categorys>

    Xml 分类运算结果文件
    <Categorys>
        
    <Category ID="1" RootID="1" ParentID="0" Depth="0" ChildCount="6" ParentList="" ChildList="3,5" Sort="1"/>
        
    <Category ID="3" RootID="1" ParentID="1" Depth="1" ChildCount="2" ParentList="1" ChildList="4" Sort="2"/>
        
    <Category ID="4" RootID="1" ParentID="3" Depth="2" ChildCount="1" ParentList="1,3" ChildList="7" Sort="3"/>
        
    <Category ID="7" RootID="1" ParentID="4" Depth="3" ChildCount="0" ParentList="1,3,4" ChildList="" Sort="4"/>
        
    <Category ID="5" RootID="1" ParentID="1" Depth="1" ChildCount="2" ParentList="1" ChildList="6" Sort="5"/>
        
    <Category ID="6" RootID="1" ParentID="5" Depth="2" ChildCount="1" ParentList="1,5" ChildList="8" Sort="6"/>
        
    <Category ID="8" RootID="1" ParentID="6" Depth="3" ChildCount="0" ParentList="1,5,6" ChildList="" Sort="7"/>
        
    <Category ID="2" RootID="2" ParentID="0" Depth="0" ChildCount="0" ParentList="" ChildList="" Sort="8"/>
    </Categorys>
  • 相关阅读:
    mysql 新建的%用户无法本地(localhost)登录
    MySQL Change root Password
    Linux装机环境配置记录
    linux 服务配置(synergy)
    shell特殊字符
    pdf中有道不能够整句划词的解决方法
    shell 注释
    VC AddFilesToProject 不能使用
    CFLoatEdit
    ln 命令
  • 原文地址:https://www.cnblogs.com/slightboy/p/404752.html
Copyright © 2011-2022 走看看