<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      數據庫中樹狀關系(各種樹狀分類)的查找

      很多情況下,一些樹狀分類關系的都使用遞歸來查詢,用遞歸來顯示,如果數據量大的話,會造成各種麻煩。

      我們可以使用樹,用先序遍歷來代替遞歸,如表:

      create table category
      (
      	id varchar(40) primary key,
      	name varchar(100),
      	lft int,
      	rgt int
      );
      insert into category values('1','商品',1,18);
      insert into category values('2','平板電視',2,7);
      insert into category values('3','冰箱',8,11);
      insert into category values('4','筆記本',12,17);
      insert into category values('5','長虹',3,4);
      insert into category values('6','索尼',5,6);
      insert into category values('7','西門子',9,10);
      insert into category values('8','thinkpad',13,14);
      insert into category values('9','dell',15,16);

       

      先序遍歷的順序圖:

      clip_image001[9]

       

      可以發現規律:

      • 如果一個節點存在子節點,那么右值與左值之差不為1;其所有子節點的的左右值均小于此節點的左右值。
      • 反之則節點為葉節點。

       

      在數據庫中的查詢語句如下:

      select child.name,count(child.name) depth from category parent,category child where child.lft>=parent.lft and child.rgt<=parent.rgt group by child.name order by child.lft;
      --首先將一個表看成兩個表,一張是父節點,一張是子節點
      --子節點的左值小于父節點的左值,右值小于父節點的右值,根據這個條件獲得存在關系的數據
      --對子節點的name進行歸組,然后統計個數(count),這樣得到有幾個上級結點,也就是層次(depth)
      --最后,按照子節點的左值進行排序

      這樣,會以很高的效率查詢出樹狀結構,避免了遞歸的缺點。

       

       

      在交互層面,列舉一個jsp的js示例:

      <html>
        <head>
          <title>樹狀結構</title>
      
      	<!-- 這里使用了xtree -->
          <script src="${pageContext.request.contextPath }/js/xtree.js"></script>
      	<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/xtree.css">
      
        </head>
        
        <body>
        	
        	<script type="text/javascript">
      	  	<c:forEach var="c" items="${list}">
      			//這是根結點
      	  		<c:if test="${c.depth==1}">
      	  		 var tree = new WebFXTree('${c.name}');
      	  		 tree.target="right";
      	  		 tree.action = "${pageContext.request.contextPath}/servlet/AddChildServlet?id=${c.id}";
      	  		</c:if>
      
      			//這是二級結點
      	  		<c:if test="${c.depth==2}">
      	  			var node${c.depth} = new WebFXTreeItem('${c.name}');
      	  			node${c.depth}.target="right";
      	  			node${c.depth}.action = "${pageContext.request.contextPath}/servlet/AddChildServlet?id=${c.id}";
      	  			tree.add(node${c.depth});
      	  		</c:if>
      
      			//如果深度大于2級了,直接在node名稱上做手腳
      	  		<c:if test="${c.depth>2}">
      	  				var node${c.depth} = new WebFXTreeItem('${c.name}');
      	  				node${c.depth}.target="right";
      	  				node${c.depth}.action = "${pageContext.request.contextPath}/servlet/AddChildServlet?id=${c.id}";
      	  				 node${c.depth-1}.add(node${c.depth});
      	  		</c:if>
      	  	</c:forEach>
      	  	
      	  	document.write(tree);
        	</script>
        
        </body>
      </html>

      posted on 2011-06-28 20:55  黑暗伯爵  閱讀(1167)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲人成网网址在线看| 国产在线观看免费观看| 91中文字幕在线一区| 天天拍夜夜添久久精品大| 乱色老熟妇一区二区三区| 国产又爽又黄的激情视频| 欧美性受xxxx黑人猛交| 国产一区二区三区怡红院| 人妻精品动漫H无码中字| 晋中市| 久久这里只精品热免费99| 欧洲精品一区二区三区久久| 亚洲欧美激情在线一区| 男女啪啪免费观看网站| 国产乱码1卡二卡3卡四卡5| 永久黄网站色视频免费直播| 国产超碰无码最新上传| 一区二区视频| 日韩一区二区三区女优丝袜| 在线无码免费的毛片视频| 中文字幕va一区二区三区| 国产日韩一区二区四季| 亚洲gv猛男gv无码男同| 久久亚洲精品国产精品| 中文无码乱人伦中文视频在线| 777奇米四色成人影视色区| 国产成人精彩在线视频| 欧美老熟妇乱子伦牲交视频| 成人永久免费A∨一级在线播放| 亚洲永久精品日韩成人av| 国产综合色在线精品| 综合久久av一区二区三区| 四虎在线成人免费观看| 精品亚洲香蕉久久综合网| 国产成人欧美综合在线影院| 国产精品人成在线播放蜜臀| 国产福利深夜在线播放| 亚洲伊人久久综合影院| 国产稚嫩高中生呻吟激情在线视频| 性XXXX视频播放免费直播| 麻豆精产国品一二三区区|