高校课程管理与评分系统的角色方案

时间:2009-12-19 22:03:01

标签: security

我有一个系统,允许课堂教师和评分员登录和管理课程和成绩论文。用户既可以是讲师也可以是评分者,对于特定的学期也可以如此。其他用户,如学生,也受本学期计划的约束。还有一些人,比如管理员,其帐户不会按学期运行。

当某人不再是评分者或教师时,她仍然需要能够访问过去的评分或课堂记录,尽管权限较少(仅限查看)。

我考虑过将一个学期作为密钥的一部分来实现角色表,但这并不适用于所有用户。我还考虑过将学期数据与角色分开,但是制作像“PastGrader”和“PastInstructor”这样的角色来覆盖那些需要访问过去信息但不应该被允许参加本学期的人。 / p>

此应用程序的最佳数据模型/角色模型是什么?

2 个答案:

答案 0 :(得分:0)

我认为您需要一个额外的实体来帮助您。您明确拥有CLASS的域对象来表示特定的类(即:组合II是一个类)。您还明确拥有PARTICIPANT的域对象来代表参加课程的人员。我想你已经确定了这两个。

接下来,您需要一个域对象来表示将举行CLASS的特定学期/时间段/教室。让我们将该域对象称为CLASSSCHEDULE。您将需要从CLASS到CLASSSCHEDULE的关系,以显示该学期期间该教室将教授的主题。

现在您需要一个域对象来表示PRATICIPANT如何与CLASSSCHEDULE交互。我们可以将此域对象称为ENROLLMENT。 ENROLLMENT对象是您为PARTICIPANT设置权限的对象。参与者作为学习者或评分者在CLASSSCHEDULE中注册。您的角色附加到ENROLLMENT对象。通过这种方式,每个PARTICIPANT将为他们参与的每个CLASSSCHEDULE提供不同的权限级别。

答案 1 :(得分:0)

我认为你走在正确的轨道上。我会把这个学期保留在角色表之外,但是在需要的地方一起使用它们。

这是我最近所做的,也适用于你的场景:

创建一个包含以下列的FunctionalRole表:

 FunctionalRoleId, FunctionalRoleName

这些角色就像工作一样。老师,平地机等

添加另一个名为FeatureRole的表,其中包含以下列:

 FeatureRoleId, FeatureRoleName

这些角色将用于应用程序中的特定功能。 GradePapers,ViewPapers等

然后创建第三个表...称之为RoleMember,它包含以下列:

 FunctionalRoleId, FeatureRoleId

这样,管理员可以更简单地通过作业分配角色,并自动分配所有功能角色。

就像我说的那样,将学期信息分开。

加布里埃尔