整理一个asp多级树型分类问题的解决方法(2)
来源:csdn 发布时间:2007-10-17 18:38:00
下面是江一在线的回复。
这是一个多级的树(TREE)罢了,其实原理是类似于俺们这个论坛的结构,俺们是这样来实现的
主要数据结构
[ id ] 长整型
[ num_replied ] 双精度型
[ num_followed ] 双精度型
[ num_lasttime ] 双精度型
当一个客户是最上层的:一级客户时,应该是
num_replied=num_followed
如果是二级的客户应该是:
num_replied=新的时间码
num_followed=上一级的num_replied
也就是说呢,二级或者并非一级分类的客户应该是num_replied<>num_followed的
而新增加一个客户或者一个下级客户时
更新num_lasttime的时间码,通过这个来保证整个客户树的完整
也就是说,只要num_lasttime相同的,必定是同一个主分类的客户
这样来得出一个完整的客户树是很容易的
第一步,得到该分类的num_lasttime
第二步,根据两个时间码,整理出整个树形结构
但问题是:假如我们要得出某一个客户的所有上级或者所有下级怎么办?
根据上面的数据结构,一个客户是可以存在并列关系的同级客户的,只要他不是一级分类
也就是说,所有num_replied相同,并且num_lasttime相同的客户都是一个级别的;但他们可能并不属于同一个上级客户,所有,上面的结构不能直接来完成你的要求,进行如下改动:
改动后的数据结构
[ id ] 长整型
[ mark ] 长整型
[ num_replied ] 双精度型
[ num_followed ] 双精度型
[ num_lasttime ] 双精度型
增加了一个MARK字段,用于表示这个客户的级数,一级客户用0表示,二级用1表示,依此类推……
那么,得出一个客户的所有下级可能这样来
1.num_lasttime相同,表示同一个一级客户
2.mark>该客户的mark
3.num_replied>该客户的num_replied
到这里,得出一个客户的所有上级你也应该知道怎么做了吧
如果你觉得太麻烦,希望像你的数据结构那样,用一个字段来表示隶属关系
我上次已经说过了,那你得学习如何科学高效的进行编码,我们可以来32位的二进制串来表示一个客户代号
比如:
0111 0010 0001 0100 0111 0001 0101 0111
前四位用来表示一级的客户
如果是一级的客户,那他的后面应该都是0
也就是类似:0001 0000 0000 0000 0000 0000 0000 0000
如果是二级的客户,第二段应该有数字,比如:
0001 0000 0010 0000 0000 0000 0000 0000
如果是再下一级的,就还有:
0001 0000 0010 0000 0100 0000 0000 0000
似次类推,可惜这种算法要用到:位与计算,而这在VBS和ACCESS中都不支持,可惜。


猜你喜欢
- 网上关于使用python 的发送multipart/form-data的方法,多半是采用ulrlib2 的模拟post方法,如下
- 前言分析目标网站的登录方式目标地址: https://github.com/login 登录方式做出分析:
- 简单介绍NumPy系统是Python的一种开源的数组计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested
- 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数
- 3. 品味“决定”艺术作品的好坏,设计的好坏则来自主观意见我们在鉴赏艺术作品时,用看法来表达当时的感觉,而你的品味则会左右你的看法。以一个有
- Note: 本解决方案在window10 + anaconda3 +pycharm2020.1.1 + scrapy安装亲测可用问题:安装S
- path.makeUrlAbsolute() 把相对URL转化为绝对URLjQuery.mobile.path.makeUrlAbsolut
- 训练的时候内存一直在增加,最后内存爆满,被迫中断。后来换了一个电脑发现还是这样,考虑是代码的问题。检查才发现我的代码两次存了loss,只有一
- 一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作
- 我和朋友都建了一个电子商务网站,大量的访问,频繁地建立和中断数据库连接,导致Web 数据库应用程序降低了数据库服务器的性能。但最近,朋友使用
- 在 Python/Django 的世界里有这样一个谚语:为语言而来,为社区而留。对绝大多数人来说的确是这样的,但是,还有一件事情使得我们一直
- 以下几种方法来模拟enum:(感觉方法一简单实用)# way1class Directions: up
- 前言:列表框控件显示多行文本,用户可以选中一行或者多行。所有的文本只能使用一种字体,不能混合使用多种字体。1 属性常用的参数列表如下:1.1
- 本文针对ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写相关知识进行了总结归纳,分享给大家便于查询和借鉴。具体归纳
- 一、使用css缩写使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩写的主要规则请参看《常用css缩写语法总结》,这里就不展开描
- 昨天,一同事发过来的一道数据库题目,就是哪种经典的父子级 ID 在同一数据库表中设计类型。需要在原表中添加一个字段,同时,将该节点的父子级详
- 程序中经常需要使用excel文件,批量读取文件中的数据python读取excel文件可以使用xlrd模块pip install xlrd安装
- 在进行数据抓取时,经常会遇到IP被限制的情况,常见的解决方案是搭建 * 池,或购买IP代理的服务。除此之外,还有一个另外的方法就是使用家里
- 这是一个非常简单的解决方案,柱状图中每一条柱都是一个 div,数据的大小呈现在 div 的宽或高上。 查看演示 例子下载实现的原理
- 在平时开发中我们经常会用到 Webpack这个时下最流行的前端打包工具。它打包开发代码,输出能在各种浏览器运行的代码,提升了开发至发布过程的