问题描述
我正在寻找一些很好的解决方案,其中用户对资源的访问由多个可以频繁更改的属性决定。
对于像这样的规则
用户 X 必须具有属性 X.a ==(条件)和属性 X.b ==(另一个条件)
访问资源R,上面提到的a和b经常变化。
每个资源都有这个规则。
(就像只有具有 X.a ==(标准)和 X.b ==(另一个标准)的用户才能访问)
Q1) 用什么数据结构来表示这一点。
Q2) 实施策略 对于像
这样的用例- 列出用户可以访问的所有资源。 (查询?)
- 在访问资源 r.X. 之前检查资格
使用示例场景详细说明上述内容。
考虑一个用户可以订阅课程的应用。
-
完成课程将提升他们的等级(比如 1 级到 100 级)。 不活动会导致等级下降到之前的等级。
-
课程的发布者可以指定课程仅对级别 3 的用户可用。或者4级及以上,甚至只有3级和6级等等。
-
如果根据发布商的设置不符合资格,用户即使在列表中也不应该在任何地方看到课程。
目前我可以考虑建立从课程到级别的多对多关系(考虑到级别是固定的)。 在为用户列出课程时,我通过过滤课程关联级别和用户当前级别来查询课程。
当有多个像这样的标准时,这取决于动态数据。 例如:用户有不同类型的级别[编程级别、营销级别、财务级别])。
并且每个课程都有类似的设置
- 编程级别 5 和标记级别 3 的用户可以访问课程 a。
- 财务级别 4 或营销级别 3 的用户可以访问课程 b。
当编程级别 5 和营销级别 3 的用户应该看到包含课程 a 和 b 的列表时。
营销级别为 3 的用户应该只看到课程 b 的列表。
Q1 和 Q2) 就这种实现而言,最佳解决方案是什么
数据结构
查询所有符合条件的实体
检查一个实体的资格
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)