本帖最后由 deepass_high 于 2011-03-12 18:40:12 编辑

解决方案 »

  1.   

    这是三层的,如果再加一层,就更加复杂,我原来的想法是通过decode每一级先进行排序,然后union每一个列的结果,再进行处理
      

  2.   

    给表加个排序字段 你修改排序字段的值就好了嘛
    (根据你的排序要求该排序字段的值吧,弄不明白你要按照什么规律来排序)...
    省表
    id  name ordercol
    1   福建  1
    2   广东  2
    3   山东  3市表(pid为省表的id)
    id  name pid ordercol
    1   厦门  1    1
    2   福州  1    2
    3   莆田  1    3
    县表(cid为市表里的id)
    id  name cid ordercol
    1   思明  1   1
    2   湖里  1   2
      

  3.   

    上面写出来的就是默认的,然后用户可以自定义各个列表的参数,目前已经设计了表,省、市,县(如果有下属村的话也需要添加进去,待考虑),然后各个字段的排序序号字段也定义了,使用union加decode肯定能解决,但不知道还有没有其他方式(left join其实也可以)
      

  4.   

    自定义的话很简单呀,表加一个字段,用于标识用户的配置,当然这样设计有一个很大的问题,就是表更新的问题,我原来的设想是原始表不变,增加一个表,用于组成SQL语句,后面发现不太现实,还有一种方法,就是一张表的树型做成多张表,通过一个映射表来维护关系,恩,有待再思考
      

  5.   

    有几个节点就设计几个排序字段,设计好父子的排序顺序和组合顺序,每一层就是一个排序,然后union起来就可以了