我有一个配置文件 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
现在我需要把它弄平,我不知道该怎么做,或者是否有可能。
任何帮助,将不胜感激。