易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP.NET 无限级分类

下图中红色箭头是父类 而且属于根目录级别。
  下面个字段为:ID  父ID  类型名称  深度  排序
  前面3个字段没有什么可解释的,做过无限级分类设计的人都应该清楚
  而第5个字段排序字段ID:43的23排序代表他在这张表排在23的根目录
  而23下面的23,01 说明他是2级分类,排在23下面的第01个,也是支持99级分类。
  而我比较特殊的是多了个深度字段,大家可以看上图数据,
  ID:40的 深度字段也是40,ID:43的 深度字段也是43。
  而他们的下级子类,后面都跟了个 "," 加自己的ID。
  2级子类的深度字段就是(父类ID,自己ID),以此类推,3级分类深度就是(总父类ID,上级父类ID,自己ID),后面不用说了吧。
  看到这里可以在看看上面的图,因为我这个网站程序,只有2级分类而已。
  当然还有中间那个 "," 完全可以自己用自己喜欢的字符 你用 "|" "-" "_"一切字符都可以 但是建议一定要有个字符。
  是因为在程序里好分割开来,而且也很直观,完全可以自己在数据库修改分类数据(因为网站分类一般定了很少改动,第一次完全可以在数据库中加上所有分类)
  谈到这里,在来说说这个字段有什么功能和好处,咋一看这个字段好象很浪费资源,下面听我细细道来:
  在行业门户网站里经常有这样的需求,需要查出某个分类下的所有子分类,如果没有这个字段的话,
  那查出下面的所有字分类,SQL语句就应该要很长了,或者使用递归:根据1级父类ID查出所有2级分类--根据2级分类ID--查出所有3级分类,如果有多级分类的话,这样的递归效率可想而知。
  如果有这个字段(并且数据已对应加好),一切就变得美好多了,让你很轻松就能查出某个分类下所有的子类,下面看个图:
  有没有看明白,只需要带上条件,深度 like ‘40%’ 注意后面的%一定要带 这样才能查出包括自己在内所有的子类,如果不需要带上自己,我只要自己下面的所有子类,很简单,深度 like ‘40,' 只需要把%号换成你自己设定的分割符就行了(只就是我强调一定要分割符的作用)。
  这样是不是很轻松,而且如果后面带上 order by Nt_OrderBy 是不是自动就根据你数据库的排序数据 排好了序呢
  最后总结一下,虽然这个字段好用,但是在添加更新分类数据的同时,也往往加大了添加更新的逻辑程序,但是为了性能,为了SQL语句的方便,这一切是值得的。


相关文档:

ASP.NET AJAX框架编程之JSON序列化剖析

ASP.NET AJAX(最初代码名为“ATLAS”)框架,作为重点支持ASP.NET开发平台的开源Ajax框架在它一出世时就受到广大.NET开发人员的青睐。在本文中,我们将专注于分析ASP.NET AJAX编程中服务器与客户端通信过程中的数据存储形式的问题。具体地说,我们将探讨一个实现序列化与反序列化的服务器端对象—JavaScriptS ......

asp.net 下web.config中配置数据库连接

1、Web.config 可以采用写连接条件 或 附加 ×.mdf 文件
<connectionStrings>
  <add name="Sales"
       providerName="System.Data.SqlClient"
       connectionString= "server=myserver;database=Products;uid=<user name&g ......

asp.net页面事件执行过程

最近搞用户验证时,出了个问题,查阅资料解决后,整理了一下。第一篇blog
主要就是父类和子类间OnLoad,OnInit,Load 事件,Init事件的执行先后问题。
一个页面(子类)的Oninit方法最先启动执行,而后递归执行父类中Oninit方法,父类Oninit方法中添加Init事件,执行Page_Init方法,后再返回父类Oninit方法执行完毕,最后返 ......

整理一下别人有关ASP.NET的好博文,没事看看

1、ASP.NET中的AJAX应用开发总结
http://blog.csdn.net/zhoufoxcn/archive/2009/12/07/4954645.aspx
2、用自定义IHttpModule实现URL重写
http://blog.csdn.net/zhoufoxcn/archive/2009/07/14/4346356.aspx
3、把C#中方法重载说透
http://blog.csdn.net/zhoufoxcn/archive/2008/09/09/2902078.aspx
4、.net 实现 URL重 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号