链接:
http://forum.iteye.com/viewtopic.php?t=15829
这是一个很有趣的东西,无限分类问题。
这里涉及到沉余数据的问题,如果不这样做,我们没法很快的对数据进行搜索。
我的方法是,在表中加入layerpath,用特别的符号分隔id;加入parentlayer,用来标记父节点;加入level,用来表示这是第几层(这个可以不要,实际应用中几乎没用,反而加大了修改layer的难度)。
这样做的优点是把搜索的重任交给了数据库,比如说查找某个节点下的所有子节点,包括继承子节点,我们就可以用一刀切的方式取得,而不用遍历树的方法,比如我的layerpath的格式如下:
|1|3|7|8|
我要查找id为1的所有子节点及继承子节点:
SQL:select * from craft where layerpath like '%|1|%';
而修改一个节点的上下文关系时,仅仅只要修改一个parentlayer就行,当然,我们要在修改更新时检查节点的继承关系(这是最重要的)。
当然,这样的设计也会有缺点,当类别数据量太多时,就会让数据库吃不消,就比如电信的电子黄页,就有一千多个类别,至少四层,特别是在搜索时,系统的很容易挂掉。解决方法唯有是用缓存。
分享到:
相关推荐
JavaEye博文JavaEye博文JavaEye博文JavaEye博文JavaEye博文
javaeye被黑 大家看看
JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mhtJSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht
JavaEye3.0开发手记
JavaEye+技术架构,讲述java框架的应用
javaeye的信息提示框代码之css,application.js
2010年2月份写的一个排序分析,是数据结构课程设计的一部分,里面有论文有源码。我在javaeye的博客那已经有上传过了,有账号可以直接到那下。之所以又上传是因为,我所剩的分不多了,希望大家支持下,给点分
javaeye月刊2008年4月 总第2期.pdf
javaeye: http://xxing22657-yahoo-com-cn.javaeye.com/ 主要发布Java等其他语言的相关文章。 还是那句话: 欢迎有兴趣的朋友共同探讨交流。 同时欢迎有出版合作意向的出版社洽谈出版事宜。
javaeye sourcecode 开源安卓客户端, JavaEYE
JavaEye新闻月刊_-_2009年3月_-_总第13期.
javaeye 论坛小测试 javaeye论坛小测试答案 javaeye论坛测试答案 这下你们就省事了。
原作使用的数据库是sqlserver2000,本人将数据库部分修改为使用mysql5.0,并提供完整的生成数据库表和数据的sql,修改了部分sql-map配置文件,做到部署之后即能使用。 * 部署时,注意修改相应的数据源配置...
简介 该系统模仿JavaEye问答系统http://www.javaeye.com/ask ...数据库 用户名:root 密码:root 登录用户和密码 wangld 1 或者 linys 1 注: 导入到Eclipse后,如果有问题的话修改Java Build Path中的JDK JDK1.5以上
Flex学习笔记_09 数据绑定_概念、使用 - Java&Flex - JavaEye技术网站 希望对爱好有帮助!!
自己打算找一个和javaeye一样的workpress代码高亮插件, 没找到, 于是把javaeye的拔了出来.
二、可以看到我在数据库分页那里只是取出部分值,而不真正是数据分页,大家可以执着着把那个做出来给我一份看看。 三、我这几个示例都是没有查询条件传递的,大家想想如果要传递查询条件应怎么做?(test1.jsp...
讲述javaeye硬件架构以及软件架构的发展历史