惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
Forbes - Security
Forbes - Security
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
V
Visual Studio Blog
月光博客
月光博客
博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
博客园 - 司徒正美
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
U
Unit 42
P
Proofpoint News Feed
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
T
Tenable Blog
Hugging Face - Blog
Hugging Face - Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Latest news
Latest news
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
博客园 - 【当耐特】
B
Blog RSS Feed
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
C
Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security

博客园 - 轻松逍遥子

Oracle 9i的数据类型 javascript事件查询综合 - 轻松逍遥子 - 博客园 用正则表达式检验是否输入日期时间是有效&&&&&& execCommand指令集 用net命令使局域网文件批量同步更新 无分]遍历表单 - 轻松逍遥子 - 博客园 设计有复杂客户端Script的服务器控件 [WEB开发] 基于XMLHTTP的简单实例 xmlhttp组件获取远程文件并筛选出目标数据 - 轻松逍遥子 - 博客园 XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案 XMLHTTP---介绍(自动抓网页内容) - 轻松逍遥子 - 博客园 Spring与EJB3.0的比较 手把手配置Hibernate环境 运用Jakarta Struts的七大实战心法 struts+spring+hibernate之间的关系与差别(ZT)- - JBuilder2005+JBOSS+Oracle9i环境配置[zt]- - 解决JBuilder在中文系统中光标错位的问题(10.18最新,适合JB2005) 不经过临时文件,直接从BLOB字段,下载数据显示图片! servlet实现从oracle数据库的blob字段中读出文件并显示 关于下载的一点心得!!(如何弹出对话框!)
无限级目录树最优算法的新研究
轻松逍遥子 · 2005-08-18 · via 博客园 - 轻松逍遥子

本文具体介绍树的数据结构和应用操作中数据库的查询复杂度

表结构:id      pid    nodepath     nodetype
                1       0       0>               F
                2       0       0>               D
                3       2       0>2>           D
                4       3       0>2>3>       F
测试项目:                                                    
1。获取当前节点的父节点:方法a,直接搜pid;方法b,在nodepath中匹配。 复杂度:O(n)
2。获取当前节点的下级子节点: 复杂度:O(n)
3。获取当前节点的所有子孙节点: 复杂度:O(n)
4。获取当前节点的所有直系祖宗节点: 复杂度:O(n)
根据nodetype,画树的时候不必再搜索数据库去判断该节点是否还有子节点。
本数据结构支持无限级树,该结构在web中应用是最优算法。

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 来处理完成.