我提供下面的场景,我发现很难弄清楚如何创建要管理的数据库结构。任何指导和解决方案都会有所帮助
我们将域名作为顶级域名,可以在每个域下创建多个组,同样多个用户可以属于域中的每个组。 我们还有模块(例如常见问题解答,产品等)和动作(如添加,编辑,删除,查看等)。每个模块都可以有多个动作(如Add_FAQ,Edit_FAQ等)。
案例1
我们需要管理这些模块操作的权限,可以在域,组和用户上提供权限。如果一个域被允许执行某些操作,则允许其下的所有组和用户自动执行。可以通过向组或用户提供与其父级相同的个人权限来覆盖权限。示例情况就像域X具有2个组(grp1,grp2)并且每个组具有2个用户user1_grp1,user2_grp1, user1_grp2,user2_grp2。现在允许X删除FAQ,这意味着所有组和用户也被允许。现在拒绝grp1删除FAQ并且拒绝user2_grp2删除FAQ。所以最后只剩下user1_grp2来删除常见问题。 如果未在较低级别定义权限,则将考虑父权限。
案例2
与我们仅允许或拒绝的权限类似,需要管理设置和值,例如,对于域,它被设置为一次显示20条记录,但值20可被50覆盖到其下的组或用户。这意味着用户和组一次会看到50条记录,而在该域下的所有休息将有20条记录。
任何人都可以帮助建议如何使用数据库管理它。提前致谢
答案 0 :(得分:0)
我建议你看一下acl-magic。 https://github.com/salboaie/acl-magic 通过创建组(角色),资源和适当“关注点”的层次结构,您可以为您的用例建模。任何数据库都可以轻松实现“持久性”方面。