浏览 2386 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-08-19 关键字: JAVA
想到用递归算法来实现无级树形分类下任意分类及其子分类下的所有新闻:
java 代码
java 代码
java 代码
这时查询的是分类c010201,结果打印为: 2 n5 n6 假如查询分类c0102,结果将包含子分类c010201的新闻,结果为: 4 n3 n4 n5 n6 不知道有没有可能通过一句SQL就能实现?先谢谢大家了
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-08-19
看看这样行不行.将分类的数据结构变动一下.
public class Category {
private String id;
private Category p_category;
private String name;
private Set children;
private Set news;
}
id的格式如下:001,001001,001002,002,002001等. 这样的话要查询子孙节点的数据不就可以用 from news where category.id like '001%' |
|
| 返回顶楼 | |
|
最后更新时间:2007-08-19
szjiang 写道 看看这样行不行.将分类的数据结构变动一下.
public class Category {
private String id;
private Category p_category;
private String name;
private Set children;
private Set news;
}
id的格式如下:001,001001,001002,002,002001等. 这样的话要查询子孙节点的数据不就可以用 from news where category.id like '001%' 如果用这种,不如彻底一点。使用 string 类型,需要用 like 来实现查询。不如直接使用 int 作为 id ,整数中的不同 bit 作为不同级别的 id 。详细的做法可以参考 http://www.web745.com/article/303.html |
|
| 返回顶楼 | |
|
最后更新时间:2007-08-21
彻底一点似乎不错,但保存和修改节点的时候,操作都挺复杂的。不知道两者之间的效率相差多少,如果相差不多,是不是可以使用字符串更简单一些呢?
|
|
| 返回顶楼 | |
|
最后更新时间:2007-08-22
szjiang 写道 看看这样行不行.将分类的数据结构变动一下.
public class Category {
private String id;
private Category p_category;
private String name;
private Set children;
private Set news;
}
id的格式如下:001,001001,001002,002,002001等. 这样的话要查询子孙节点的数据不就可以用 from news where category.id like '001%' 这样编码结构确实清晰,也比较容易实现,而我最担心的是使用字符串做模糊查询,是否会影响效率呢? |
|
| 返回顶楼 | |
|
最后更新时间:2007-08-22
iunknown 写道 如果用这种,不如彻底一点。使用 string 类型,需要用 like 来实现查询。不如直接使用 int 作为 id ,整数中的不同 bit 作为不同级别的 id 。详细的做法可以参考 http://www.web745.com/article/303.html 根据iunknown提供的资料,尝试采取了这样的做法:ID字段保持不变,在分类里增加一个字段code bigint,最大值是2的64次方,分为8个深度级别的话,每一级可以包括256个项目。 把编码转换成2进制,前8位是第一级,与字符串型编码类似,用16进制来显示的话,01 00 00 00 00 00 00 00是第一级别。01 01 00 00 00 00 00 00是上一个分类的下级分类。下级的最高位都是相同的,因此如果我们希望取得某一分类极其所有子类下的所有新闻,可以使用from News where newsCategory.code>=01 00 00 00 00 00 00 00 and newsCategory.code<02 00 00 00 00 00 00 00。(不知道这样做是否跟iunknown所说到的方法一致?) 但现在对位运算编码和字符串编码的选择有很大疑惑,似乎字符串的更简单,而位运算相对就复杂了点。是否位运算与字符串比较,更有效率呢? |
|
| 返回顶楼 | |
|
最后更新时间:2007-08-22
> 是否位运算与字符串比较,更有效率呢?
TEST it! |
|
| 返回顶楼 | |







