位置: 编程技术 - 正文

sqlserver另类非递归的无限级分类(存储过程版)(sql中的非逻辑)

编辑:rootadmin
下面是我统计的几种方案: 第一种方案(递归式): 简单的表结构为: CategoryID int(4), CategoryName nvarchar(), ParentID int(4), Depth int(4) 这样根据ParentID一级级的运用递归找他的上级目录。 还有可以为了方便添加CategoryLeft,CategoryRight保存他的上级目录或下级目录 第二种方案: 设置一个varchar类型的CategoryPath字段来保存目录的完整路径,将父目录id用符号分隔开来。比如:1,5,8, 第三种方案: 每级分类递增两位数字的方法 示例: 一级分类:,,,... 二级分类:,,,... 三级分类:,,... 分析一下,其实第三种方案并不能真正意义上做无限级的分类,而第二种方案,虽然比较容易得到各上级及下级的分类信息。但,添加和转移分类的时候操作将很麻烦。 而且,也完全违反了数据库设计范式。 其实我也一直在用第二种方案的。为了查找方便,我有时都在新闻表里加上CategoryID和CategoryPath 而我今天要说的算法其实是第二种方案的改进版,一般做分类都是使用一个表格来保存分类信息。 而我这里,要新建两个表格,一个表格是保存分类信息表,一个保存分类关系表。 表结构如下: 表1:tomi_Category CategoryID int(4), '编号 CategoryName nvarchar(), '分类名称 Depth int(4), '深度 表2:tomi_CategoryBind CategoryID int(4), BindCategoryID int(4), Depth int(4), 添加,编辑,删除操作有点麻烦。。我是直接用存储过程的。。不知道大家能看得懂不。。哈哈。 1、添加分类(Category_Add) 每个分类在tomi_CategoryBind有完整的目录结构。。一个分类在tomi_CategoryBind的记录数等于他在tomi_Category的depth值。 图片: 2、编辑修改分类(Category_Edit) 3、删除分类(Category_Del) 会直接删除子分类 4、分类列表,显示分类(Category_List) exec Category_List 可以直接让分类等级查询出来。而且显示全部的话,一次查询即可,只需判断depth就行。 图片: 5、上级子分类列表 (Category_upTree) exec Category_UpTree 这样就可以得到一个分类的完整子目录集,方便吧,只要一条sql. 图片: 6、下级子分类列表(Category_downTree) exec Category_DownTree 这样可以得到一个分类完整下级目录。比如得到某个分类和其分类的子分类下的所有产品用这个就好。。方便,一条sql. 图片: 以上是初稿,只是随意的测试了几次。。。有错误的,还请大家指出。。 呵呵。转载请注明链接,博客园首发,多谢。 作者:TomiWong 时间:..

推荐整理分享sqlserver另类非递归的无限级分类(存储过程版)(sql中的非逻辑),希望有所帮助,仅作参考,欢迎阅读内容。

sqlserver另类非递归的无限级分类(存储过程版)(sql中的非逻辑)

文章相关热门搜索词:sql 非,sql取非集,sql中的非逻辑,sql 非,sql 非,sql中的非逻辑,非sql 数据库,sql 非,内容如对您有帮助,希望把文章链接给更多的朋友!

一个用来统计相同姓名人数的SQl语句 sql语句查询表结构是这样:ID姓名性别1张三男2王四男3丽丽女4张三男5赵柳男6高洁男7王四女8高洁女9张三女怎么能用一条SQL语句查询出如下的结果姓名

SQLSever导入数据图文方法 首先登录到远程数据库服务器:1.右击您准备导入数据的数据库,选择所有任务下的导入数据2.进入DTS导入/导出向导,点击下一步按钮继续3.选择数据源

数据库备份 SQLServer的备份和灾难恢复 各大服务器硬件厂商(IBM,HP等)提供有很好的数据保护策略(硬件或软件).如大家熟知的RAID磁盘阵列(RedundantArrayofIndependentDisks)就是很好的数据保护方法.就SQL

标签: sql中的非逻辑

本文链接地址:https://www.jiuchutong.com/biancheng/349491.html 转载请保留说明!

上一篇:SQLServer2005 按照日期自动备份的方法(sqlserver按时间查询)

下一篇:一个用来统计相同姓名人数的SQl语句(统计得到的一组数据有80个)

  • 计提企业所得税分录
  • 现金存银行会计分录
  • 财务软件属于无形资产的哪一种
  • 3%简易征收范围
  • 代收款有手续费怎么做账
  • 律师费的发票税率怎么算
  • 装饰公司开票内容怎么填
  • 滴滴代叫乘客有没有事
  • 技术证怎么办理
  • 股息红利是否纳入个税合并征税
  • 房租费没有发票怎么做账务处理
  • 以股东投资为基础
  • 电子承兑汇票付款流程
  • 未分配利润可以转盈余公积吗
  • 金蝶软件怎么设置会计科目
  • 纳税申报表未开票收入可以填负数吗
  • 应付职工薪酬明细表怎么填写
  • 捐款属于什么会计科目类别
  • 1697508803
  • 企业为职工缴纳的五险一金占工资总额的多少
  • 地下车库怎么缴费
  • 苹果助手hi
  • 事业单位服务收入怎么做账
  • 法人车无偿给公司使用合法吗
  • 关闭固定在任务栏的功能
  • kpupgrader.exe是什么
  • 保理业务的会计记账
  • PHP:mcrypt_module_open()的用法_Mcrypt函数
  • 约书亚树国家公园
  • 研发新产品的重要性
  • 应缴纳的房产税计入什么科目
  • vue后端框架推荐
  • 其他综合收益科目有哪些
  • 成本核算流程及注意事项
  • 企业实际发生的与取得收入有关的支出
  • 金蝶k3明细账如何查询
  • mysql建表的完整步骤
  • mongodb使用场景总结
  • mongodb如何分片
  • python命令行如何退出
  • 贴现金额的会计分录
  • 商业折扣影响销售成本吗
  • linux系统中mysql数据库的导入和导出
  • mysql同步复制搭建方法指南详细步骤
  • mysql命令行实用程序
  • 跨年度少计摊销怎么做账
  • 小规模纳税人销售不动产适用税率
  • 建筑企业的安全生产许可证由谁颁发
  • 收到红字发票如何申报增值税?
  • 提取安全生产费用是什么意思
  • 公司注销后如何起诉他人
  • 收到销售折让的负数发票怎么做会计分录
  • 应收账款应付账款可以抵消吗
  • 企业注销股东投资款怎么处理
  • 市政配套费减免政策
  • 会计账户分类是什么意思
  • mysql数据库类型有哪些?如何选择合适的数据类型
  • sql %和_
  • centos下载教程2020
  • Windows移动中心里没有无线网络
  • linux中find命令基本使用方法
  • win7开机假死
  • windows7软件卸载
  • win7还原电脑系统的步骤
  • win7 64位系统怎么查看串口号?
  • win8使用教程和技能
  • win10开机后没声音
  • opengl gltranslatef
  • nodejs socket hang up
  • JQuery中Ajax()的data参数类型实例分析
  • js前端搜索功能
  • unity3d 脚本
  • 10个JavaScript中易犯小错误
  • python组合运算
  • 基于jQuery Ajax实现上传文件
  • 江苏常州税务局电话人工服务电话
  • 增值税预缴税款在主表怎么填写
  • 国家税务总局发票查询官网
  • 税务局窗口人员工作内容
  • 应缴纳资源税税额怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设