社区
疑难问题
帖子详情
树形结构分类编码算法的实现问题
joinrry
2004-06-22 05:30:23
采用64位长整型为树形结构编码
每层8位 共8层 每层可以有256种分类
但sql server 长整型有一个符号位
好像这种编码需要大量的位操作 不知具体怎么实现?
请有着方经验的高手讲一讲?
怎样插入一个新的分类?
怎样删除一个已有的分类?
怎样将一个分类降级或升级?
...全文
260
5
打赏
收藏
树形结构分类编码算法的实现问题
采用64位长整型为树形结构编码 每层8位 共8层 每层可以有256种分类 但sql server 长整型有一个符号位 好像这种编码需要大量的位操作 不知具体怎么实现? 请有着方经验的高手讲一讲? 怎样插入一个新的分类? 怎样删除一个已有的分类? 怎样将一个分类降级或升级?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjcxc
2004-06-22
打赏
举报
回复
种类不可能是很多的,几万种类别已经是非常多的了.
除非你将产品和类别混合在这一齐,这样的话,只能说明你的表结构设置不合理.
用无限分级的话,要统计也不是要多次连接数据库,采用函数+存储过程处理,速度也不会慢到那里去.
joinrry
2004-06-22
打赏
举报
回复
to zjcxc(邹建)
用无级分类的方法有一个问题没办法解决的
就是我要搜索某一类商品时 首先要用递归求出它下面的所有分类 当层数多和分类大的情况下 多次连接数据库 这种方法的效率非常低 我有没有更好的方法 所以就不能采用
而用我举的这种方法 就非常容易实现
选出第一层第一种分类下的所有商品
select * from product where product.fartherid>16 and product.fartherid<32
如果商品表用fartherid 索引之后 速度就会非常快
joinrry
2004-06-22
打赏
举报
回复
to zjcxc(邹建) :
字符型不够灵活 查询的时候只能用like语句
001这种编码在用数字型的就是1
我这里用一个4+4位的两层举例说明一下我的思路
27的2进制为0001 1001
它的含义是第一层第1种分类 和第二层的第9个分类
关于你讲的升降级麻烦 主要是要使用位操作 我不懂
请大虾们指点指点!!!
zjcxc
2004-06-22
打赏
举报
回复
用这种编码方法,最大的麻烦就是编码升级/降级,及类别的改变.
还有一个麻烦的是每层位数的分配,考虑不好,以后就很难使用.
一般这种用在类别变化很少的情况下,如果类别变化频繁,建议用无级分类的方法,即:
编号 类别名称 上级编号
zjcxc
2004-06-22
打赏
举报
回复
你那种编码方法,改用字符型吧.
因为用数据型的话,001这种编码是体现不了的,只能是>0开头
树形
结构
的数据库表设计
然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD
算法
是
实现
关系型数据库中存储
树形
结构
的关键。 理想中
树形
结构
应该具
树形
结构
的调试打印
很多涉及到
算法
的工作,就需要程序员自己手动
实现
树形
结构
,但出于
结构
本身复杂性,不太容易做对,需要一种调试工具来检测正确性。一般的调试手段无非就是加打印, GDB 上断点,写测试用例等,但这些局部以及外部的...
Java
树形
结构
递归
递归查询树
结构
Java之使用递归查询多级
树形
结构
数据
Java之使用递归查询多级
树形
结构
数据;工作中可能会碰到一个表中存在父子关系,需要查询多级
结构
的
树形
数据场景(如图1-1),因此我们可以使用递归来
实现
树形
结构
的数据库表Schema设计
树形
结构
的数据库表Schema设计...然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD
算法
是
实现
关系型数据库中存储
树形
结构
的关键。
疑难问题
22,210
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章