http://www.xk100.com/view01.asp
图片发不上来,具体需求看这个连接吧
打开之后左边有个树,我要做一个和他一样的树
可以按照年级类型版本科目浏览
表该怎么设计?

解决方案 »

  1.   

    create table tt(id number,pid number,desc varchar2(40));就这种普通的表不行吗?
    id列来标识每一个节点
    pid是该节点的上层节点
    desc是该节点描述 比如说语文、三年级……之类
      

  2.   

    一般id和pid定义成字符型,并且用几位字符(如下例3位一层)标示一层,这样的ID设计直观
    如第一层001,002,003,004
      第二层001001,001002,001003;002001,002002,002003
    以此类推...
      

  3.   

    这个很简单啊,不就是树形列表吗?用父id的模式设计就搞定了,表如下:--科目表
    create table course(
        id int, 
        pid int,
        name varchar2(64)
    );--然后js脚本通过一层层pid来往下取数据。可以用connect by start with的方式取得所有数据,然后用js脚本形成++按钮的页面效果。
      

  4.   

    在论坛上看到过的例子,记录下来了,但是不记得原来地址, 盗用一下贴给你先: id          parent_id  name 
    300000001  0          供电公司 
    320000012  300000001  安全监察部 
    320000028  300000001  变电检修工区 
    320000069  320000028  变电维修二班 
    320000068  320000028  变电维修一班
    create table test_connect (
    id varchar2(100),
    parent_id  varchar2(100),
    name  varchar2(100)
    )select * from test_connect ;SELECT wmsys.wm_concat(id), REPLACE(wmsys.wm_concat(NAME), ',', '->')
      FROM (SELECT t.id, t.name
              FROM test_connect t
             START WITH t.id = '320000069'
            CONNECT BY t.id = PRIOR parent_id
             ORDER BY LEVEL
    );SELECT wmsys.wm_concat(id), REPLACE(wmsys.wm_concat(NAME), ',', '->')
      FROM (SELECT t.id, t.name
              FROM test_connect t
             START WITH t.id = 320000069
            CONNECT BY t.id = PRIOR parent_id
             ORDER BY LEVEL DESC);
      

  5.   

    楼上正解。 如果你用的是oracle数据库,建议要学一下oracle树查询。不然代码写死你。