无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(1)表结构
无限分类是一个老生常谈的话题了,网上有很多解决方案,可以分成二个流派,一种利用递归,一种利用非递归(当然需要其它一些辅助手段判断节点层次),但核心表结构都差不多,有三个关键字段(ID主键,ParentId上级类id,ClassName类名--理论上讲,如果用递归,这三个字段就足够了),完整表结构如下
Create TABLE [dbo].[T_Class]( [F_ID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_T_Class_F_ID] DEFAULT (newid()), [F_ClassName] [nvarchar](256) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_F_ClassTest_F_ClassName] DEFAULT (''), [F_ShortName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [F_ParentID] [uniqueidentifier] NULL CONSTRAINT [DF_T_Class_F_ParentID] DEFAULT (newid()), [F_Depth] [int] NULL CONSTRAINT [DF_F_ClassTest_F_Depth] DEFAULT ((0)), [F_RootID] [int] NULL CONSTRAINT [DF_F_ClassTest_F_RootID] DEFAULT ((0)), [F_Orders] [int] NULL CONSTRAINT [DF_F_ClassTest_F_Orders] DEFAULT ((0)), [F_ParentIDStr] [nvarchar](300) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_F_ClassTest_F_ParentIDStr] DEFAULT (''), [F_ParentNameStr] [nvarchar](300) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_F_ClassTest_F_ParentNameStr] DEFAULT (''), [F_ReadMe] [nvarchar](250) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_F_ClassTest_F_ReadMe] DEFAULT (''), [F_AddTime] [datetime] NULL CONSTRAINT [DF_F_Class_F_AddTime] DEFAULT (getdate()), [F_Type] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [F_MaxPage] [int] NULL CONSTRAINT [DF_T_Class_F_MaxPage] DEFAULT ((0)), [F_No] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, [F_isShow] [tinyint] NULL CONSTRAINT [DF_T_Class_F_isShow] DEFAULT ((0)), [F_AutoId] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_T_Class] PRIMARY KEY CLUSTERED ( [F_ID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP的命令行扩展Readline相关函数学习
- Goland中使用Golang命令行工具
- MHA搭建之ssh互信打通脚本
- pt-slave-restart工具
- 二叉树:层序遍历登场!
- 二叉树:前中后序迭代方式的写法就不能统一一下么?
- 二叉树:听说递归能做的,栈也能做!
- 二叉树:一入递归深似海,从此offer是路人
- 关于二叉树,你该了解这些!
- 双指针法:总结篇!
- 栈与队列:总结篇!
- Appium移动端自动化测试--元素操作与触摸动作【移动端自动化测试教程奉上】
- 接口测试Mock利器--moco runner是如何工作的?
- Java中类型判断的几种方式
- 如何实现类似@Component的Spring动态注入功能