浏览 8641 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-19
java 代码
java 代码
java 代码
这时查询的是分类c010201,结果打印为: 2 n5 n6 假如查询分类c0102,结果将包含子分类c010201的新闻,结果为: 4 n3 n4 n5 n6 不知道有没有可能通过一句SQL就能实现?先谢谢大家了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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! |
|
返回顶楼 | |