哦。。
我是说如果某种商品其有某些分类,这些子分类中又有其相应的下一级分类,以此类推(形式如1.1,1.1.1,1.1.1.1)则这些分类信息及其相应的商品信息在数据库中(jsp+mysql)要怎么保存,数据库的结构要怎样设计。要怎么样读取内容,并可形成目录树?

解决方案 »

  1.   

    name         content
    商品         服装,食品,.....
    食品         糕点,水果,.....
    水果         苹果,桃子.....
      

  2.   

    将目录按树型结构定义
            |——目录1 |——子目录1
            |——目录2-|——子目录2
            |——...   |——...
    根目录--|——...
            |——目录n
    对于这个树的搜索一般涉及两种方法:深度搜索、广度搜索。
    深度搜索的路径:根目录->目录2->子目录1->直到这个分支完毕->回溯上一级...
    广度搜索的路径:根目录->下一级的所有目录->第二级的所有目录...
    这里简单写一下,看看数据结构方面的书籍
    你说的“无限目录”的设计思路是基于递归的;
    但是对于递归的层次应该有限制,否则会占用系统大量的资源。
    设计的要点是数据库的结构(目录结构的映射)。
    对于一个目录既是一个树的节点,除了目录外还应该有元素(例如某目录下的文件)
    节点(node)具有几个基本的属性:编号、名称、层数、是否叶子、父目录编号、是否含有子目录或子元素;
    可以建立节点基本模型:Node
    名称                类型                说明
    number              Number              节点编号
    name                Vchar               节点名称
    level               Number              节点层数
    f_number            Number              父节点编号
    child               Number/Bollean      是否含有子节点
    is_leaf             Number/Bollean      是否叶子
    is_dir              Number/Bollean      是否目录根据实际画树的需要,产生节点子模型:MyNode extends Node
    status              Number              节点开关状态
    link_name           Number              链接模型关系:
                               Node
                                △
                                |    1...*
                               MyNode──┐
                                │       │
                                └ ───┘
    显示树的思路:比较有效率的算法是以广度搜索为主,辅以有限制的深度搜索。
    即首先搜索当前目录下的所有下一级子目录,处于平衡性能考虑可以对这些子目录进行深一级的搜索。特别警告:不要考虑一次将树全部生成!
    对于模型Node应提供几个基本的方法:
    createNode()、getNode()、deleteNode()、modifyNode()、getNextNode()、isLeaf()、hasChild();和显然还需要一些改变节点个别属性值得方法,略...
    呵呵,很通用的名字啊,就不写中文了。
    对于模型MyNode还应提供画树需要的特殊方法:
    getStatus()开闭状态、getTreeStr()生成在页面上画树的脚本等等哈哈,当面随便写的,你自己先做个最简单熟悉树相关的算法。
    java有专门的Tree类,不过个人认为不太灵活。
    我这里没有适合你用的结构简单清晰的代码例子,这种树的代码如果不清楚原理是很难看懂的;建议还是从最简单的做起。
      

  3.   

    太好了,先谢过 poppop(光盘) 及各位。我做先