电脑技术吧

会员投稿 会员登录 会员注册 网站公告:
搜索: 您现在的位置主页 > SQL亚博ios下载地址 > 数据库 > 正文

数据库设计中高效率的分类算法介绍

作者:admin    文章来源:互联网 电脑技术吧     点击数:    更新时间:2011-09-27
收藏】 【挑错】 【推荐】 【打印

摘自赛迪网技术社区作者:konjinto

 我是初学者,今天在网上查找数据库方面的知识时,找到了这篇文章.写得很好! 我想对很多数据库学习者都有很大帮助,特转贴过来.谢谢Konjinto!! 织梦好,好织梦

---------------------------------------------------------------------------------------------------------------------------------------------  dedecms.com

分类算法要解决的问题

内容来自dedecms

在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。

织梦好,好织梦

我常常面试一些程序员,而且我几乎毫无例外地要问他们一些关于分类算法的问题。下面的举几个我常常询问的问题。你认为你可以很轻松地回答么? 织梦内容管理系统

1、分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段? copyright dedecms

2、如何快速地从这个Table恢复出一棵树? 本文来自织梦

3、如何判断某个分类是否是另一个分类的子类? 内容来自dedecms

4、如何查找某个分类的所有产品?

织梦好,好织梦

5、如何生成分类所在的路径。 本文来自织梦

6、如何新增分类? copyright dedecms

在不限制分类的级数和每级分类的个数时,这些问题并不是可以轻松回答的。本文试图解决这些问题。 内容来自dedecms

分类的数据结构

dedecms.com

我们知道:分类的数据结构实际上是一棵树。在《数据结构》课程中,大家可能学过Tree的算法。由于在网站建设中我们大量使用数据库,所以我们将从Tree在数据库中的存储谈起。

织梦好,好织梦

为简化问题,我们假设每个节点只需要保留Name这一个信息。我们需要为每个节点编号。编号的方法有很多种。在数据库中常用的就是自动编号。这在Access、SQL Server、Oracle中都是这样。假设编号字段为ID。 dedecms.com

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

本文来自织梦

这样,我们就得到了分类Catalog的数据表定义:

织梦内容管理系统

 

copyright dedecms


Create Table [Catalog](

[ID] [int] NOT NULL,

[Name] [nvarchar](50) NOT NULL,

[FatherID] [int] NOT NULL

);

 

发表评论 请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:密码:新注册匿名
评论总数: [ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 在线帮助