一、关于技术方面
用到数据库的查询比较多,用到子查询。
select floor((1000000-0+1)*rand()+0)
update employee set employee_pw=
(SELECT FLOOR(100000 + (RAND() * 899999))) where status='A';
select employee_pw from employee ;//这里一定要加(),否则有错,在数据库中生成六位随机数存入数据库中。此操作在MYSQL平台。
关于存诸过程,这个不是很了解,但用了这个例子来记录一下,备以后参考吧。
默认员工自助授权处理说明
1、关联到四个表
self_module(module_id)
self_role(role_id,role_name)
self_module_per4role(role_id,module_id,per)
employee_role(user_id,user_role)
主要处理二个表,要将employee表的employee_id(所有在职员—)插入五条相同的记录到
self_permission (employee_id,department_id,module_id,perm)表中,并保持self_permission表中的module_id,perm相同.
即内容为
employee_id,4,(1,2,3,4),
employee_id,5,(1,2,3,4)
employee_id,6,(1,2,3,4)
employee_id,7,(1,2,3,4)
employee_id,12,(1,2,3,4)
1)用存储过程来处理。此存储过程必须在mysql5以上的版本才可运行。所以将HASE数据库中employee和self_module_per4role二个表
copy出来放在新建的MYSQL5数据库中,运行存诸过程,重新生成self_module_per4role表.再将self_module_per4role表导出脚本再
存入HASE数据库中。
2)将权限关联到员工.
insert into employee_role(user_id) select employee_id from employee where employee_pw!=''and status='A';
//employee表的employee_id(所有在职员工)插入到employee_role(user_id)
update employee_role set role_id='23';
-- Procedures
--
-- DELIMITER $$
--
CREATEDEFINER=`root`@`%` PROCEDURE `selfPerm`()
BEGIN
DECLARE emp_id INT;
DECLARE done INT DEFAULT 0;
DECLARE EmpCur CURSOR FOR SELECT employee_id FROM employee WHERE (employee_pw!='' OR employee_pw IS NULL) AND status='A';
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN EmpCur;
REPEAT
FETCH EmpCur INTO emp_id;
IF NOT done THEN
INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','4','1,2,3,4');
INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','5','1,2,3,4');
INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','6','1,2,3,4');
INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','7','1,2,3,4');
INSERT INTO self_permission (employee_id,department_id,module_id,perm) VALUES (emp_id,'1','12','1,2,3,4');
END IF;
UNTIL done END REPEAT;
CLOSE EmpCur;
END$$
--
-- DELIMITER ;
--