- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用mysql数据库设计无限级分类表
应用mysql数据库设计无限级分类表
应用mysql数据库设计无限级分类表
应用mysql数据库设计无限级分类表,应用PHP面向对象技术,编写无限级分类的录入,编辑修改,查询,列表显示等动作的类程序。
简单需求分析:
1.实现无限级分类。
2.实现无限级链接导航
3.实现逐级分类下各条信息的查询,包括最多浏览量,最多评论量,最新信息。
4.随意转移子分类到任何级别而不用修改分类下的信息表
5.使用最少的参数得到所要的信息,URL参数最好只有一个,比如cID=1或者ID=1
6.不管多少级,只有一个PHP文件实现类列表和各种方式的信息调用。
刚才看了一下,只是说了无限级分类的数据库结构怎么分才会查询的速度快,占用资源少,(其实分类大家应该都会,速度慢一点应该也可以,因为分类毕竟是分过以后很少动嘛,可以生成一个静态的东西就解决了)
但至于如何应用信息表,我应该怎么设计和如何去调用才会方便呢?
比方说,我在三级a1里加了个信息,我点一级A的时候要把这个信息调出来,如何实现?
|--- a1
|-A1----|--- a2
| |--- a3
A--|-A2
|
|-A3
B
C
信息表
id
title
cate
memo
这个信息表应该如何设计?
无限级分类的数据库设计
那篇文章已介绍了无限级分类及实现方法,而且附原代码,认真看看吧!总体来说实现无限级分类就两种方法
1.递归调用方法,这种方法一个字慢,查询数据库n次
2。预排序法,就是先把树上所有结点排好序,然后一条查询语句就可以找到路径,找到一个结点下所有结点,等等
仿文件系统结构的数据库设计
最近,因为项目的原因,需要设计一个数据库,该数据库的功能主要是描述文件系统的结构和文件信息,在网上找了很多的资料,但是许多设计要么针对查询量比较多的来做,要么针对修改、插入量比较多的来做,而对于文件系统而言,它的查询、插入、修改都是相当频繁的,因此,数据库的设计极其重要,现将自己的一点想法说说,希望大家能够给一点意见啊!!
一开始,为了尽快拉出原型系统,我采用了name(本结点),parent(父节点),ancestor(祖先结点)
来描述其结构,然后采用递归算法去对数据库进行操作,这样,功能基本可以完成,但是,实在担心在文件夹深度过高时数据库承受不了这样的负担,于是,在寻找解决办法。
第一种方法,改进SQL语句逻辑:这种方法对于现有数据库设计和程序设计而言,应该说优化工作量是最小的,但是,本人还没有测试过不知是否可行,先写出来,整理思路:
通过系统功能和数据库结构的分析,功能操作无非是对文件复制、移动、删除、新建等,而这些功能的主要问题是对文件夹进行类似操作时,怎样同时修改其子孙结点的相关信息,这也是我递归的原因。后仔细观察数据库的数据发现查询结点的子孙结点只要对SQL进行改进似乎就可以办到:
$rs=mysql_query(select ancestor from info where name=$id);(查询要操作结点的祖先结点);
$ancestor.=$rs[0][ancestor].:.$id;
$rs1=mysql_query(select name from info where ancestor like $ancestor%);
恩,这样的操作似乎可以完成对子孙结点的获取,而不用遍历。具体的效果,待我测试后再贴吧。
第二种方法,是比较针对于查询较多修改较少的数据库设计,个人觉得不太适合现有这个项目,但是思路和方法性比较好,也贴出来吧。(转载)
产品分类,多级的树状结构的论坛,邮件列表等许多地方我们都会遇到这样的问题:如何存储多级结构的数据?在PHP的应用中,提供后台数据存储的通常是关系型数据库,它能够保存大量的数据,提供高效的数据检索和更新服务。然而关系型数据的基本形式是纵横交错的表,是一个平面的结构,如果要将多级树状结构存储在关系型数据库里就需要进行合理的翻译工作。接下来我会将自己的所见所闻和一些实用的经验和大家探讨一下:
层级结构的数据保存在平面的数据库中基本上有两种常用设计方法:
1、毗邻目录模式(adjacency list model)
2、预排序遍历树算法(modified preorder tree traversal algorithm)
我不是计算机专业的,也没有学过什么数据结构的东西,所以这两个名字都是我自己按照字面的意思翻的,如果说错了还请多多指教。
这两个东西听着好像很吓人,其实非常容易理解。这里我用一个简单食品目录作为我们的示例数据。
我们的
文档评论(0)