我正在为一个部分基于角色的访问控制系统设计数据库模型,但需要一些访问列表功能和关系访问。我正在构建一个Web应用程序(使用PHP和MVC架构),以管理学生、教师、职员和经理之间的交互,例如教师奖励学生或某个职员注册或删除学生。我的主要问题是:
1- 除了他们已经从他们的角色/角色继承的权限之外,为每个用户提供可选的额外权限。(=>访问列表)
2- 提供一种简单的方法来匹配某些学生到每个学期的特定学生,这意味着一个老师应该能够评分参加他教授的课程的学生,但不能评分其他班级的学生,并且这些班级变化太频繁。 (每次更改之间有2个月)。
我考虑实现标准的基于角色的系统,为每个用户添加一个额外的权限表,并在权限中添加一个作用域字段,可以选择填写另一个表的名称(这是由应用而不是数据库完成),其中包含连接的列表。例如,教师可以拥有教师控制器:“得分” - >方法“新得分” - >范围:“课程-用户”,这意味着我在“课程-用户”表中搜索教师ID和任何其他与教师共享课程ID的UserID,并允许教师为共享该课程ID的任何学生提交新成绩。这是我的模型: 这样做正确吗?我应该为每个新共享连接创建新表还是将它们全部放在一个表中?我很感激任何帮助,或者至少指向解决此问题的标准解决方案的方向。
我考虑实现标准的基于角色的系统,为每个用户添加一个额外的权限表,并在权限中添加一个作用域字段,可以选择填写另一个表的名称(这是由应用而不是数据库完成),其中包含连接的列表。例如,教师可以拥有教师控制器:“得分” - >方法“新得分” - >范围:“课程-用户”,这意味着我在“课程-用户”表中搜索教师ID和任何其他与教师共享课程ID的UserID,并允许教师为共享该课程ID的任何学生提交新成绩。这是我的模型: 这样做正确吗?我应该为每个新共享连接创建新表还是将它们全部放在一个表中?我很感激任何帮助,或者至少指向解决此问题的标准解决方案的方向。