链接:
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就行,当然,我们要在修改更新时检查节点的继承关系(这是最重要的)。
当然,这样的设计也会有缺点,当类别数据量太多时,就会让数据库吃不消,就比如电信的电子黄页,就有一千多个类别,至少四层,特别是在搜索时,系统的很容易挂掉。解决方法唯有是用缓存。
分享到:
相关推荐
这些脚本可能包括创建表、视图、存储过程、触发器等数据库对象,以及填充初始数据的INSERT语句。 3. **SQL语言**:SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。它包括数据查询、数据...
面对大量的动态请求,JavaEye采用了多级缓存机制,包括页面缓存、数据缓存和数据库查询缓存等,有效减轻了后端数据库的压力,提高了网站的整体性能。其中,页面缓存主要用于存储静态或变化不频繁的内容,减少重复...
【JavaEye第六期】是2008年8月出版的一期专注于Java技术的电子书,其中涵盖了多个Java相关的技术和趋势。以下是对其中关键知识点的详细说明: 1. **Seam 2.1的新特性**:Seam是一个开源的Java EE框架,致力于简化...
1. **数据库结构**:Oracle数据库由多个逻辑存储结构组成,包括表空间、数据文件、重做日志文件、控制文件等。表空间是Oracle数据库存储数据的主要单位,它由一个或多个数据文件构成。数据文件实际保存了数据库的...
"JavaEye博文" 本资源摘要信息来自JavaEye博文,作者cutesunshineriver,发布于2010年。该博文涵盖了软件开发、编程、项目管理等多方面的知识点。 在本博文中,我们可以看到多个与软件开发相关的知识点,包括: 1...
10. **Android Studio集成开发环境**:作为Android开发的标准工具,JavaEye客户端的构建可能依赖于Gradle,源码中会包含build.gradle文件,定义了项目结构、依赖关系和构建配置。 通过对JavaEye Client SourceCode...
JavaEye热点阅读是JavaEye论坛推出的2009年2月特辑,旨在为Java学习者和开发者提供最新的知识及行业动态。这份资料包含了多个Java相关的主题,包括但不限于并发编程、开源项目、设计模式、框架应用以及软件开发实践...
1. **MVC模式**:JavaEye+可能采用了Model-View-Controller(模型-视图-控制器)架构模式,这是一种将业务逻辑、用户界面和应用程序数据分离的设计方式,有利于代码的组织和维护。 2. **Spring框架**:作为Java企业...
13. **万能DAO设计**:DAO(Data Access Object)是数据访问对象,是软件设计模式之一,用于封装数据库操作,这里的讨论分享了自定义DAO设计的经验和源码,邀请同行进行评审和交流。 JavaEye论坛是一个汇集了众多...
BIRT支持多种数据源,包括关系数据库、Web服务、XML等,并且集成了强大的图表和图形生成能力。BIRT具有一个可视化的报表设计环境,允许用户通过拖放操作创建复杂的报表结构。 在这个压缩包中,我们可以看到一些关键...
标题“测试JavaEye的PDF生成效果”提示我们关注的是一个使用JavaEye库生成PDF文档的实践过程。JavaEye可能是一个用于Java平台的开源库,它提供了将数据转换为PDF格式的功能,这对于创建报告、手册或其他需要打印或...
- **Data Buffer**:数据库的数据缓冲区,如MySQL的InnoDB buffer pool,用于存放数据页,提高数据读写的效率。建议设置为服务器物理内存的60-80%。 **监控与调优** - 对于数据库缓存,可以通过MySQL的`show ...
javaeye被黑 大家看看
### JavaEye3.0开发手记之开发环境搭建详解 #### 一、开发环境搭建概述 随着JavaEye3.0开发计划的启动,本篇文章将详细介绍如何为该项目搭建高效的开发环境。开发过程中不仅需要考虑软件的选择,还需要针对操作...
Android JavaEye客户端的架构设计通常采用MVP(Model-View-Presenter)模式,这是一种常见的Android应用设计模式,它将业务逻辑、数据模型和用户界面分离,提高了代码的可测试性和可维护性。Model层负责数据处理和...
它提供了统一的API,覆盖了多种数据存储技术,包括关系型数据库、NoSQL数据库、搜索引擎等。Spring-data-mongodb模块则是专门针对MongoDB的,它将MongoDB的操作与Spring的编程模型完美结合,使得开发者可以充分利用...