我有一个Profile Profile_Permission权限数据库结构,其中配置文件可以包含父配置文件(在分层结构中) 并且个人资料/许可多对多关系具有“价值”'存储特定配置文件权限的列。
要求规定,如果个人资料的父级个人资料具有权限,则该子级个人资料会继承该权限,除非该子级 配置文件专门覆盖具有不同值的权限(通常只是真/假)我的问题是,我需要编写一个查询 这使我可以根据权限以及父级的权限值确定应授予配置文件的权限 正确覆盖的值(如果适用)。
到目前为止我已经
了select pro.id , pro.name, perm.id, perm.name, pp.permission_value
from Profile pro
join PROFILE_PERMISSION pp on pro.id = pp.profile_id
join Permission perm on pp.permission_id = perm.id
where pp.profile_id in
(select p.Id from profile p start with p.id =6 connect by prior p.parent_id = p.id);
我的结果
ID NAME ID NAME PERMISSION_VALUE
------------------------------------------------------------------------------------
6 CS Tier 3 15 Allow issuance of Instore Credits true
6 CS Tier 3 17 Allow issuance of Coupons true
6 CS Tier 3 14 Allow issuance of Cash Credits true
6 CS Tier 3 2 Allow access to Customer Service Application true
6 CS Tier 3 1 Allow access to Security Console Application true
5 CS Tier 2 25 Cash Credit Limit 25
5 CS Tier 2 17 Allow issuance of Coupons false
5 CS Tier 2 2 Allow access to Customer Service Application false
5 CS Tier 2 15 Allow issuance of Instore Credits false
4 CS Tier 1 2 Allow access to Customer Service Application true
4 CS Tier 1 15 Allow issuance of Instore Credits true
4 CS Tier 1 17 Allow issuance of Coupons true
4 CS Tier 1 19 Allow Invoice Line Cancel true
4 CS Tier 1 9 Allow Return Initiation true
4 CS Tier 1 16 Allow issuance of Club Credits true
现在我需要把它弄平,我不知道怎么做,或者甚至可能。
任何帮助都将不胜感激。