mysql 数据库问题,有一张职位表(id,name)、还有一张权限表(id,name),它们是多

mysql 数据库问题,有一张职位表(id,name)、还有一张权限表(id,name),它们是多,第1张

如果遇到这个问题:

错误代码 1045

Access denied for user 'root'@'localhost' (using password:YES)

解决办法:

1先关闭mysql window下在你的mysql安装目录下 例如c:\mysql2\bin\mysql-nt stop;

2 c:\mysql\bin\mysql-nt --skip-grant-tables

3 mysql -uroot

4 use mysql

5 update user set password = password('新密码') where user='root' and host='localhost'

6 flush privileges

7 c:\mysql\bin\mysql-nt restart

图片的顺序有点问题,应该是复制职员表那题在前面

1、假设db_shop库中有一张名叫staffer的职员表,那么复制表包括记录的sql就是 create table db_shop.staffer_bak2 select * from db_shop.staffer

2、查看staffer_bak2 表结构的sql是 desc db_shop.staffer_bak2

3、给staffer_bak2 表添加字段,这题因为我不知道原本的职员表有哪些字段,我只能举例,可以添加例如 姓名,年龄,婚否,薪水,部门,职位,学历,邮箱,手机号,住址等等字段,假设原表没有职位这个字段,咱们来添加这个字段

alter table db_shop.staffer_bak2 add column job varchar(30) comment '职位'

4、添加主键外键

这可以根据原本的职员表哪些字段是主键和外键,咱们就设置哪些为主外键,因为你没有列出我只能猜测原表id是主键,那么设置主键sql就是alter table db_shop.staffer_bak2 add primary key(id)

假设原职员表有department_id(部门id)且与department部门表的id字段有外键约束,那么设置外键sql就是alter table db_shop.staffer_bak2 add constraint `fk1` foreign key (`department_id`) references db_shop.department(`id`)

5、删除外键约束

alter table db_shop.staffer_bak2 drop foreign key `fk1`

6、删除之前添加的职位字段

alter table db_shop.staffer_bak2 drop job

这个需要用程序递归处理

$dept_tree=[]

$deptid = 19

while($deptid>0){

    //假设你的数据库查询是这个函数,根据条件直接查询一条记录返回

    $dept = getone('department',['id'=>$deptid])

    //防止数据丢失出错

    if(empty($dept))break

    

    array_unshift($dept_tree,$dept)

    $deptid = $dept['dep_parentid']

    

    //如果需要防止数据错乱出现递归,这里可以判断一下

    if(in_array($deptid,array_column($dept_tree,'id') !== false){

        //说明职位关系乱了,有死循环

        break

    }

}

可以把这段代码封装成一个函数使用。这里就不论从哪一级开始查询了,总是能把该职位及其上级全部查询出来,按顺序放进数组里

$dept_tree 类似这样

array(

    0=>array(

    'id'=>1,

    'dep_parentid'=>0,

    'dep_name'=>'顶级',

    ),

    1=>array(

    'id'=>2,

    'dep_parentid'=>1,

    'dep_name'=>'国灿金融',

    ),

    2=>array(

    'id'=>4,

    'dep_parentid'=>2,

    'dep_name'=>'招聘部',

    ),

    3=>array(

    'id'=>19,

    'dep_parentid'=>4,

    'dep_name'=>'经理助理',

    ),

)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7342704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存