浏览 875 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-11-12
现在很多购物网站,例如淘宝,分类信息网...有很多类目信息,这些类目呈树状结构,都知道,在关系型数据库中设计树状结构是很头疼的事情,要考虑到效率,直观,性能,数据完整性方面的因素,比如说什么中值排序基数法,最近看到apache上的native xml db的项目Apache Xindice,把类目数据组织成xml存在Xindice中,这种基于XPath Query的搜索速度以及管理xml解决方案会不会很好,有人做过这方面的尝试吗?
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-11-12
我也查这方面的资料!你看这个设计的怎么样?
http://www.blogjava.net/davidxu/archive/2005/08/17/multilevelTree.html
|
|
| 返回顶楼 | |
|
最后更新时间:2007-11-12
mysql> desc CMS_CHANNEL;
+-----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+-------+ | sChannelId | varchar(20) | NO | PRI | | | | sChannelName | varchar(20) | NO | | | | | sDisplayName | varchar(20) | YES | | NULL | | | lChannelModalId | bigint(20) | YES | | NULL | | | sChannelPage | varchar(255) | YES | | NULL | | | iListLines | int(11) | YES | | NULL | | | sSubDNS | varchar(40) | YES | | NULL | | | sKeywords | varchar(255) | YES | | NULL | | | lDetailModalId | bigint(20) | YES | | NULL | | | sDetailPage | varchar(255) | YES | | NULL | | | iStatus | int(11) | YES | | NULL | | | lLastAccess | bigint(20) | YES | | NULL | | +-----------------+--------------+------+-----+---------+-------+ 12 rows in set (0.00 sec) mysql> select sChannelId, sChannelName, sDisplayName, sDetailPage from CMS_CHANNEL where sChannelId like '01%'; +------------+--------------+--------------+----------------------------------------------------+ | sChannelId | sChannelName | sDisplayName | sDetailPage | +------------+--------------+--------------+----------------------------------------------------+ | 01 | 基金 | /news | /news/yyyy/MMdd/HHmmss{article}.html | | 0101 | 基金动态 | jjdt | /news/jjdt/yyyy/MMdd/HHmmss{article}.html | | 0102 | 基金公告 | jjgg | /news/jjgg/yyyy/MMdd/HHmmss{article}.html | | 0103 | 基金焦点 | jjjd | /news/jjjd/yyyy/MMdd/HHmmss{article}.html | | 0104 | 基金市评 | jjsp | /news/jjsp/yyyy/MMdd/HHmmss{article}.html | | 0105 | 基金看市 | jjks | /news/jjks/yyyy/MMdd/HHmmss{article}.html | | 0106 | 基金人语 | jjry | /news/jjry/yyyy/MMdd/HHmmss{article}.html | | 0107 | 基金评级 | jjpj | /news/jjpj/yyyy/MMdd/HHmmss{article}.html | | 010701 | 晨星评级 | cxpj | /news/jjpj/cxpj/yyyy/MMdd/HHmmss{article}.html | | 010702 | 理柏评级 | lbpj | /news/jjpj/lbpj/yyyy/MMdd/HHmmss{article}.html | | 010703 | 银河评级 | yhpj | /news/jjpj/yhpj/yyyy/MMdd/HHmmss{article}.html | | 0108 | 基金研究 | jjyj | /news/jjyj/yyyy/MMdd/HHmmss{article}.html | | 0109 | 投资策略 | tzcl | /news/tzcl/yyyy/MMdd/HHmmss{article}.html | | 0110 | 基金重仓 | jjzc | /news/jjzc/yyyy/MMdd/HHmmss{article}.html | | 0111 | 交易提示 | jyts | /news/jyts/yyyy/MMdd/HHmmss{article}.html | | 0112 | 产品分析 | cpfx | /news/cpfx/yyyy/MMdd/HHmmss{article}.html | | 0113 | 数字论市 | szls | /news/szls/yyyy/MMdd/HHmmss{article}.html | | 0114 | 策略报告 | clbg | /news/clbg/yyyy/MMdd/HHmmss{article}.html | | 0115 | QFII·QDII | qfii | /news/qfii/yyyy/MMdd/HHmmss{article}.html | | 0116 | 海外基金 | hwjj | /news/hwjj/yyyy/MMdd/HHmmss{article}.html | | 0117 | 私募基金 | smjj | /news/smjj/yyyy/MMdd/HHmmss{article}.html | | 0118 | 社保基金 | sbjj | /news/sbjj/yyyy/MMdd/HHmmss{article}.html | | 0119 | 企业年金 | qynj | /news/qynj/yyyy/MMdd/HHmmss{article}.html | | 0120 | LOF基金 | lof | /news/lof/yyyy/MMdd/HHmmss{article}.html | | 0121 | ETF基金 | etf | /news/etf/yyyy/MMdd/HHmmss{article}.html | | 0122 | 基金法规 | jjfg | /news/jjfg/yyyy/MMdd/HHmmss{article}.html | | 0123 | 基金学校 | college | /news/college/yyyy/MMdd/HHmmss{article}.html | | 012301 | 基本概念 | jbgn | /news/college/jbgn/yyyy/MMdd/HHmmss{article}.html | | 012302 | 基本费用 | jbfy | /news/college/jbfy/yyyy/MMdd/HHmmss{article}.html | | 012303 | 基金运作 | jjyz | /news/college/jjyz/yyyy/MMdd/HHmmss{article}.html | | 012304 | 基金史馆 | jjsg | /news/college/jjsg/yyyy/MMdd/HHmmss{article}.html | | 012305 | LOF知识 | lofzs | /news/college/lofzs/yyyy/MMdd/HHmmss{article}.html | | 012306 | ETF知识 | etfzs | /news/college/etfzs/yyyy/MMdd/HHmmss{article}.html | | 012307 | 基金理财 | jjlc | /news/college/jjlc/yyyy/MMdd/HHmmss{article}.html | | 0124 | 财经要闻 | cjyw | /news/cjyw/yyyy/MMdd/HHmmss{article}.html | +------------+--------------+--------------+----------------------------------------------------+ 35 rows in set (0.00 sec) |
|
| 返回顶楼 | |
|
最后更新时间:2007-11-12
这是以前的一个CMS频道分类设计
现在的有所变动,主要是在目录计算的地方. 大体意思是通过自定义Id的方式. Id 步长 2位 那么一级分类为:01~99 varchar(20) / 2 = 10 那么Id 01~99999999999999999999 如果你觉得分类不够用的可以加大步长 级次关系 01 --0101 ----010101 ----010102 --0102 --0103 02 |
|
| 返回顶楼 | |
|
最后更新时间:2007-11-13
select sChannelId, sChannelName, sDisplayName, sDetailPage from CMS_CHANNEL where sChannelId like '01%';
用like查询性能效率会不会是个瓶颈,如果访问量很大的话? |
|
| 返回顶楼 | |
|
最后更新时间:2007-11-13
这是我罗列部分数据出来给你看的.
这些数据基本上视为死数据,加载在内存中运算. 基于这种方式编码Id,进行各种运算或分类运算我想都很方便. |
|
| 返回顶楼 | |
|
最后更新时间:2007-11-13
bluepoint 写道 这是我罗列部分数据出来给你看的.
哦,got it.
这些数据基本上视为死数据,加载在内存中运算. 基于这种方式编码Id,进行各种运算或分类运算我想都很方便. |
|
| 返回顶楼 | |
|
最后更新时间:2007-11-13
如果要显示象如下图那样,怎么用代码显示数据?
|
|
| 返回顶楼 | |
|
最后更新时间:2007-11-13
比如(一):
将分类数据初使化进有序的: TreeMap<sChannelId, Channel> 遍列调用TreeMenu.setChild 主要看你树状菜单的API 比如: public class TreeMenu { ... public static void setChildByParent(String parentId, ...) { // TODO 依据父Id,设定子Id } ... } |
|
| 返回顶楼 | |
|
最后更新时间:2007-11-14
谢谢bluepoint的分享,以前研究过cms不过对里面的一些机制还不是很了解。
|
|
| 返回顶楼 | |







