php 进阶:实现无限分类(2)

2.数据库的规划
------------------------------------------------------------
前面谈到分类的复杂性,因此如何规划数据库便成为了实现无限分类非常重要的一步.

我曾介绍过论坛的数据库规划,不错论坛能够实现无限的跟接,无限分类便是这种形式的扩展,分类同样是这种子父的关联关系,所以分类的数据库就是如何确立明确这种子父关系,这里面有几个难点.

1)如何处理各分类的信息存储;
2)如何处理分类的亲缘关系;
3)如何处理对信息的查询;

亲缘关系的数据库处理与论坛的数据库处理类似,这里建个 type 的数据库用来处理分类:

建立字段:
id(int):用来记录各分类的自然序号
uid(int):用来记录该分类的父分类的 id 号
type(char):类别的名称
roue_id(varchar):亲缘树,以 :0:2:10:20: 的 id 连接表明亲源关系
roue_char(varchar):亲缘树,类似 :系统:linux:开发工具:gcc: (这个字段有没有都没关系,为了更方便地了解各亲缘关系当然字符表述比数字表述更直接^o^,不过最好加上这个字段)

这样一个无限分类的类别表就建立了起来,接下来就需要建立存储信息的数据库,处理查询一个表最方便所以这里建立一个表存储信息 type_message:

id(int):信息的序号;
typeid(int):所属类别的 id 号;
title(varchar):信息标题;
message(text):信息内容;
time:信息建立的时间;

这两个数据表就能够完成无限分类的这个任务了(两个表的辅助字段就没加了,读者可自行加入).

剩下的任务就全部交由 php 来处理完成.

时间: 2024-09-23 22:30:31

php 进阶:实现无限分类(2)的相关文章

php 进阶:实现无限分类(4)

4.路径跟踪 ------------------------------------------------------------ 前面已经介绍过了分类的创建实现方法,在分类表里记载了 rout_id 和 rout_char 这两个存储分类路径的信息,在不做任何处理的情况下,程序只能够顺序下到最底层的分类而无法倒退(当然可利用浏览器的 back 键倒退,但这对程序来说是不完整的),因此必须将 rout_id 和 rout_char 的信息分解出来完成实在的路径指示. 具体的做法,假如数据库记

php 进阶:实现无限分类(3)

3.程序控制 ------------------------------------------------------------ 实现无限分类这个功能中就属这一步最为复杂辛苦,首先看看程序需要完成的步骤: 1)创建分类上传; 2)创建信息上传; 3)明确显示各分类及其之间的关系; 4)处理查询功能; 5)如何处理编辑和删除的功能; 而这五步中最为困难的就是第五个步骤,因为对分类的编辑和删除涉及到一至性的问题. 下面我就逐一描述 php 的程序控制: 1)创建分类上传 在介绍这个功能前,先介

php 进阶:实现无限分类(1)

1.分析 我们在用 php 制作网站时,分类是很重要的,在分类下面又再分类这第二个分类称为次分类,而现在大多数网站分类只分到第三类: 第一分类(父分类)-->第二分类(子分类)-->第三分类(孙分类) 这种亲缘分类越多,程序和数据库的控制就越加的复杂困难.在同一级的分类处理和控制是非常的简单的,因为只需要一个数据库来记载这一级的分类就行了,如:系统,新闻等分类,在这一级上处理是很简单的,但对一个网站来说一级分类是不够的,还需要再分类,如: 系统-->linux,windows 新闻--&

php 进阶:实现无限分类第1/4页_php技巧

1.分析  我们在用 php 制作网站时,分类是很重要的,在分类下面又再分类这第二个分类称为次分类,而现在大多数网站分类只分到第三类:  第一分类(父分类)-->第二分类(子分类)-->第三分类(孙分类)  这种亲缘分类越多,程序和数据库的控制就越加的复杂困难.在同一级的分类处理和控制是非常的简单的,因为只需要一个数据库来记载这一级的分类就行了,如:系统,新闻等分类,在这一级上处理是很简单的,但对一个网站来说一级分类是不够的,还需要再分类,如:  系统-->linux,windows 

一棵php的类树(支持无限分类)

最近问无限分类的类树问题比较多,所以一高兴自己写了一个,我刚写完的,大家用用看,看看怎么实现起来更快,更简单,把你的树也贴出来(要只查询一次数据库的)<br> 这是一棵分类列表的类树, 支持无限分类<br> 一个分类下面可以同时有"包含子类的分类"和"最终分类";<br> 唯一的优点是*****只需要进行一次的数据库*****查询.<br> 样子不是很好看,不过可以自定义修改,可以自己定义css加里面<br>

php无限分类, 支持输出树状图

<?php /** * 通用的树型类,可以生成任何树型结构 */ class tree { /** * 生成树型结构所需要的2维数组 * @var array */ var $arr = array(); /** * 生成树型结构所需修饰符号,可以换成图片 * @var array */ var $icon = array('│','├','└'); /** * @access private */ var $ret = ''; /** * 构造函数,初始化类 * @param array 2维

PHP无限分类-PHP100代码篇

  <?php  //无限分类,从子类找所有父类 //$id 子类ID  function php100_xd($id){    $sql="select * from fl where id='$id'";    $q=mysql_query($sql);    $rs=mysql_fetch_array($q);    $rs['fid']==0 ? "" : fl($rs['fid']);    echo $rs['name']."-"

ASP.NET无限分类

asp.net 开始在网上查找到asp的无限分类,但是asp.net的几乎找不到,找到的也是跟TreeView结合起来的.找到asp版本的代码有几种,原来都差不多是采用递归算法.其中表结构都是如下:表名称是ClassNameid                     主键sid                    对应的父类的idClassName        对应类别的名称.代码段一:1function loadNextType(upid,rank)2    dim rs3    set

Net中实现无限分类的2个例子

 以前总想着搞这个无限分类,今天终于得空好好的看了下,发现实现的原理还是很简单的,数据结构上,用两列(分类编号,上级编号)就可以实现,可是为了联合查询的方便,一般都再增加一列(深度),在这个实例里,我只用了两列,剩下的无非就是递归着对TreeView进行数据绑定而已~~.   代码如下: public partial class _Default : System.Web.UI.Page { BIL bil = new BIL(); protected void Page_Load(object