树形结构数据库的保存方式(mysql)

el/2024/7/24 1:05:44
CREATE TABLE `groups` (
  `g_id` int(11) NOT NULL auto_increment COMMENT '主键',
  `g_name` varchar(100) NOT NULL COMMENT '用户组名(唯一约束',
  `g_authority` varchar(100) character set utf8 collate utf8_bin NOT NULL COMMENT '用户组权限(构思中',
  `g_parent` int(11) NOT NULL COMMENT '父节点',
  `g_status` bit(1) NOT NULL COMMENT '1 正常 0 禁用',
  `u_id` int(11) NOT NULL COMMENT '外键  操作人\n                      ',
  `g_cdate` datetime NOT NULL COMMENT '创建日期',
  PRIMARY KEY  (`g_id`),
  UNIQUE KEY `AK_uk_groups_name` (`g_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户组';
递归得到所有子节点:
delimiter //
create FUNCTION getchilds(prentid int)returns varchar(1000)
begin
declare dparents_ids  varchar(1000);
DECLARE results varchar(1000);
set dparents_ids=cast(prentid  as CHAR);
set results='0';
  while dparents_ids is not null do
set results=concat(results,',',dparents_ids);
select GROUP_CONCAT(g_id) into dparents_ids from groups where FIND_IN_SET(g_parent,dparents_ids) and g_status=1;
end while;
return results;
end; //
父节点递归(得到id集合):
delimiter //
create FUNCTION getparent(prentid int)returns varchar(1000)
begin
declare i_index INT;
declare temp int;
declare dparents_ids  varchar(1000);
set dparents_ids='';
set i_index =0;
set temp=prentid;
  while i_index <> -1 do
select g_parent into i_index from groups where g_id=temp;
set temp=i_index;
if i_index <> prentid and i_index <> -1
then
set dparents_ids=concat(dparents_ids,',',i_index);
end if;
end while;
return dparents_ids;
end; //

http://www.ngui.cc/el/5557491.html

相关文章

Java解压和压缩带密码的zip文件(转…

提示&#xff1a;本文介绍的是winzipaes项目&#xff0c;但该开源项目使用起来并不太方便&#xff0c;我最终也没有采用它&#xff0c;如果您有在Java语言环境中处理zip压缩文件的需要&#xff0c;推荐采用zip4j这一开源项目&#xff0c;相比winzipaes仅支持AES算法而言&#x…

CENTOSnbsp;设置文件夹打开方式:…

1. 系统&#xff0d;&#xff0d;首选项&#xff0d;&#xff0d;文件管理&#xff0d;&#xff0d;行为&#xff0d;&#xff0d;勾选总是在浏览窗口打开。 2.用鼠标滚轮双击文件夹

lucenenbsp;排序、过滤、分词器

1. 排序 1.1. Sort类 public Sort() public Sort(String field) public Sort(String field,Boolean reverse) //默认为false&#xff0c;降序排序 public Sort(String[] fields) public Sort(SortField field) public Sort(SortField[] fields) Sort sortnew Sort(“bookname…

Java判断文件类型nbsp;(转)

通常&#xff0c;在WEB系统中&#xff0c;上传文件时都需要做文件的类型校验&#xff0c;大致有如下几种方法&#xff1a; 1. 通过后缀名&#xff0c;如exe,jpg,bmp,rar,zip等等。 2. 通过读取文件&#xff0c;获取文件的Content-type来判断。 3. 通过读取文件流&#xff0c;根…

java反射调用静态方法

Class c; c Class.forName("class name"); Method m c.getMethod("method name", new Class[] {int.class, int.class, int.class,int.class}); m.invoke(c, new Object[] {1,2, 3, 4});

Cometnbsp;(web技术)

Comet是一种用于web的推送技术&#xff0c;能使服务器能实时地将更新的信息传送到客户端&#xff0c;而无须客户端发出请求&#xff0c;目前有两种实现方式&#xff0c;长轮询和iframe流。 长轮询 长轮询是在打开一条连接以后保持&#xff0c;等待服务器推送来数据再关闭的方式…

CentOS6.2nbsp;解决安装腾达w311m…

解压好软件包;2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO.bz2 在文件夹下make; 提示: make****/lib/modules/2.6.32-279.0.1.el6.x86_64/build没有文件或文件夹。 于是到这个文件夹下&#xff0c;试着打开build&#xff0c;系统提示软链接错误是否删除&…

jsoupnbsp;javanbsp;htmlnbsp;解析器用法

使用选择器语法来查找元素 问题 你想使用类似于CSS或jQuery的语法来查找和操作元素。 方法 可以使用Element.select(String selector) 和 Elements.select(String selector) 方法实现&#xff1a; File input new File("/tmp/input.html"); Document doc Jsoup.par…

centos6.2nbsp;腾达W311M无线USB…

W311M无线USB网卡驱动安装(CentOS) 1.#lsusb //列出挂载的 usb 设备 2.#tar -jxvf 2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO.bz2 //解压驱动文件操作 3.#cd 2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO/ //进入解压文件目录 4.#vi os…

javanbsp;URL相对路径转换成绝对路径

//绝对路径 String absolutePath "http://www.sdfsdfsfdf.com/1/2/3.html"; //相对路径 String relativePath "../../a.jpg"; //以下方法对相对路径进行转换 URL absoluteUrl new URL(absolutePath); URL parseUrl new UR…