RSS
 

Archive for the ‘科技&IT’ Category

预排序遍历树算法的探究(无限级分类算法)-1

09 Dec

今天在自己做分类的时候也碰到这个经典问题,我之前通常都是通过DictName和DictType做2级分类的,或者是通过parentId做递归查询,的确有时候在应用范围和递归效率上面另两难的选择。这次通过网络找到一个比较好的非递归算法,但是由于其局限性,牺牲了写的性能而强化了读的效率,正好跟递归反一反。为此我顺水推舟,准备将2者整合,形成一个比较完善的算法来处理。当然,既然不牺牲读写速度了,那势必得牺牲存储空间了,呵呵,广大同学服务器的空间还是能适应这点存储要求的吧。

首先作为开篇,我们来看一下网上的这篇帖子,主要算法思想原来是源自MySQL官方文档Managing Hierarchical Data in MySQL

多层数据结构估计所有的web开发者估计都不会陌生,各种软件的分类都是基于多层结构来设计的。

下面是一个典型的多层数据结构示意图:

相关创建数据语句:

CREATE TABLE category(
category_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
parent INT DEFAULT NULL);

INSERT INTO category
VALUES(1,'ELECTRONICS',NULL),(2,'TELEVISIONS',1),(3,'TUBE',2),
(4,'LCD',2),(5,'PLASMA',2),(6,'PORTABLE ELECTRONICS',1),
(7,'MP3 PLAYERS',6),(8,'FLASH',7),
(9,'CD PLAYERS',6),(10,'2 WAY RADIOS',6);

SELECT * FROM category ORDER BY category_id;

在这种数据结构中,各层之间通过字段 parent 来形成邻接表,我们查询某些层级的关系的时候一般都是通过递归的方式,遍历某个层级关系的SQL的查询次数会顺着层级的增加,想想在层级有20的时候,根据某个底层节点取它到顶层节点的查询次数吧。 Read the rest of this entry »

 

[转]Debian+Nginx+PHP(FastCGI)+MySQL搭建LNMP服务器(三版)

12 Nov

写在最前:看了张宴的“搭建胜过Apache十倍的Web服务器”系列文章全是基于redhat/centos上的,现在又有很多人用Debian来做服务器,所以,今天本人来教大家在Debian5.06上也来实现LNMP。
本文基于张宴Nginx0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原文链接:http://blog.s135.com/nginx_php_v6/]但略有不同。里面包涵了错误排除方法,优化等。但略有不同。里面包涵了错误排除方法,优化等。
本文是Debian上的第三版,是基于虚拟机上实现的。 Read the rest of this entry »

 

Dropbox-全球最大云存储服务提供商

28 Oct

简介

Dropbox是Dropbox公司运行的在线存储服务,通过云计算实现因特网上的文件同步,用户可以存储并共享文件和文件夹。

Dropbox提供免费和收费服务,在不同操作系统下有客户端软件,并且有网页客户端。目前Dropbox在中国大陆地区已经无法访问(将在下面讲述访问方法)

用户可以通过Dropbox客户端,把任意文件丢入指定文件夹,然后就会被同步到云,以及该用户其他装有Dropbox客户端的其他计算机中。Dropbox文件夹中的文件随后就可以与其他Dropbox用户分享,或通过网页来获取。用户也可以通过网页浏览器来手工上传文件。

2010年5月10日,中国大陆无法访问Dropbox项目主页,相关服务无法连接到服务器。 Read the rest of this entry »