验证猜想
使用SQL递归查询数据(这个地方只是验证过程,后面并不需要使用递归SQL,无需担心)
id instid instCode instName parentId
1 1111 0001 白虎队 0
131 2222 0002 灰狼队 1111
132 3333 0003 青龙队 2222
164 4444 0004 赤蛇队 3333
查询机构角色表,找到机构对应的角色Id
instid role_id
1111 root
2222 null
3333 null
4444 null
在这里就可以看出我们的第一个猜想是正确的,因为只有*父节点才有角色ID,
也就证明了其他子节点是无法通过角色ID查询到对应的系统信息,即系统信息只有*父节点才有
查询角色表,找到对应的系统Name
select sys_name from role where role_id = "root";
查询系统表,找到对应的系统信息
select * from t_ims_auth_sys where sys_name = "炒鸡特工队";
经过验证发现猜想1在数据库中的映射关系正是这样,而猜想2却在数据库中的映射关系和我们猜想的并不同,
这也证明了当有解决问题的想法出现时,一定要查询数据库验证,保证理论正确,才可以得出正确的操作步骤
那让我们来看一下猜想2哪里出错了
select * from t_ims_auth_user where inst_name ="白虎队";
经过查询数据库我们发现,使用机构名称查询用户表时,即使是*父辈也有对应的用户信息
(实际上经查询是每级都有用户信息和部门信息的),即用户信息并不仅仅保留在底级子辈机构中