乐观 发表于 2015-1-16 23:18:44

ASP网页设计一种效力极高的分类算法(转--十分好,帮...

因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。算法分类算法要办理的成绩
在网站建立中,分类算法的使用十分的广泛。在计划一个电子商铺时,要触及到商品分类;在计划公布体系时,要触及到栏目大概频道分类;在计划软件下载如许的程序时,要触及到软件的分类;云云等等。能够说,分类是一个很广泛的成绩。

我经常口试一些程序员,并且我几近毫无破例地要问他们一些关于分类算法的成绩。上面的举几个我经常扣问的成绩。你以为你能够很轻松地回覆么^_^.

1、分类算法经常体现为树的暗示和遍历成绩。那末,叨教:假如用数据库中的一个Table来表达树型分类,应当有几个字段?
2、怎样疾速地从这个Table恢复出一棵树;
3、怎样判别某个分类是不是是另外一个分类的子类;
4、怎样查找某个分类的一切产物;
5、怎样天生分类地点的路径。
6、怎样新增分类;

在不限定分类的级数和每级分类的个数时,这些成绩并非能够轻松回覆的。本文试图办理这些成绩。

分类的数据布局
我们晓得:分类的数据布局实践上是一棵树。在《数据布局》课程中,人人大概学过Tree的算法。因为在网站建立中我们大批利用数据库,以是我们将从Tree在数据库中的存储谈起。

为简化成绩,我们假定每一个节点只必要保存Name这一个信息。我们必要为每一个节点编号。编号的办法有良多种。在数据库中经常使用的就是主动编号。这在Access、SQLServer、Oracle中都是如许。假定编号字段为ID。

为了暗示某个节点ID1是别的一个节点ID2的父节点,我们必要在数据库中再保存一个字段,申明这个分类是属于哪一个节点的儿子。把这个字段取名为FatherID。如这里的ID2,其FatherID就是ID1。

如许,我们就失掉了分类Catalog的数据表界说:

CreateTable(

NOTNULL,

(50)NOTNULL,

NOTNULL

);

商定:我们商定用-1作为最下面一层分类的父亲编码。编号为-1的分类。这是一个假造的分类。它在数据库中没有纪录。

怎样恢复出一棵树
下面的Catalog界说的最年夜上风,就在于用它能够轻松地恢复出一棵树―分类树。为了更分明地展现算法,我们先思索一个复杂的成绩:如何显现某个分类的下一级分类。我们晓得,要查询某个分类FID的下一级分类,SQL语句十分复杂:

selectNamefromcatalogwhereFatherID=FID

显现这些种别时,我们复杂地用<LI>来做到:



<%

REMoConn---数据库毗连,挪用GetChildren时已翻开

REMFID-----以后分类的编号



FunctionGetChildren(oConn,FID)

strSQL="selectID,NamefromcatalogwhereFatherID="&FID

setrsCatalog=oConn.Execute(strSQL)

%>

<UL>

<%

DowhilenotrsCatalog.Eof

%>

<LI><%=rsCatalog("Name")%>

<%

Loop

%>

</UL>

<%

rsCatalog.Close

EndFunction

%>

如今我们来看看怎样显现FID下的一切分类。这必要用到递回算法。我们只必要在GetChildren函数中复杂地对一切ID举行挪用:GetChildren(oConn,Catalog(“ID”))就能够了。

<%

REMoConn---数据库毗连,已翻开

REMFID-----以后分类的编号



FunctionGetChildren(oConn,FID)

strSQL="selectNamefromcatalogwhereFatherID="&FID

setrsCatalog=oConn.Execute(strSQL)

%>

<UL>

<%

DowhilenotrsCatalog.Eof

%>

<LI><%=rsCatalog("Name")%>

<%=GetChildren(oConn,Catalog("ID"))%>



<%

Loop

%>
</p>国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了

爱飞 发表于 2015-1-19 21:33:50

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

海妖 发表于 2015-1-24 17:49:43

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

第二个灵魂 发表于 2015-1-26 21:51:20

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

灵魂腐蚀 发表于 2015-2-4 20:40:59

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

柔情似水 发表于 2015-2-10 08:11:44

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。

莫相离 发表于 2015-3-1 04:16:05

还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。

飘灵儿 发表于 2015-3-10 12:32:31

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

只想知道 发表于 2015-3-17 07:05:50

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

分手快乐 发表于 2015-3-24 00:38:20

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
页: [1]
查看完整版本: ASP网页设计一种效力极高的分类算法(转--十分好,帮...