我有一个系统,允许课堂讲师和评分员登录并管理课程和评分论文。用户既可以是讲师,也可以是评分员,在特定的学期也可以这样做。其他用户,如学生,也被绑定到这个学期的计划中。还有一些人,比如管理员,他们的账户不是按学期运行的。
当某人不再是评分员或教师时,她仍然需要能够访问过去的评分或课堂记录,尽管具有较少的权限(仅限查看)。
我曾考虑过使用学期作为键的一部分来实现角色表,但这并不适用于所有用户。我也考虑过将学期数据与角色分开,但让"PastGrader“和"PastInstructor”这样的角色涵盖那些需要访问过去信息但不应该被允许参与本学期的人。
此应用程序的最佳数据模型/角色模型是什么?
发布于 2009-12-20 08:41:30
我认为你在正确的轨道上。我会把学期放在角色表之外,但在需要的地方把它们放在一起。
以下是我最近所做的,也适用于您的场景:
创建包含以下列的FunctionalRole表:
FunctionalRoleId, FunctionalRoleName这些角色将类似于工作。教师、评分员等。
添加另一个名为FeatureRole的表,其中包含以下列:
FeatureRoleId, FeatureRoleName这些角色将用于应用程序中的特定功能。GradePapers、ViewPapers等
然后创建第三个表...将其命名为RoleMember,它包含以下列:
FunctionalRoleId, FeatureRoleId这样,管理员可以通过作业更简单地分配角色,并且所有功能角色都将自动分配。
就像我说的,把学期信息分开。
加布里埃尔
发布于 2009-12-20 08:32:32
我认为你需要一个额外的实体来帮助你。很明显,你有一个类的域对象来表示一个特定的类(例如: Composition是一个类)。显然,您还有一个用于PARTICIPANT的域对象,用于表示参加课程的人员。我想你已经确定了这两个。
接下来,您需要一个域对象来表示将要上课的特定学期/时间段/教室。让我们称该域对象为CLASSSCHEDULE。你需要一个从班级到班级的关系,以显示在该学期中该教室将教授什么主题。
现在您需要一个域对象来表示PRATICIPANT如何与CLASSSCHEDULE交互。我们可以将此域对象称为注册。注册对象是您为参与者放置权限的位置。参与者是作为学习者或评分者的班级中的ENROLLed。您的角色已附加到注册对象。这样,每个参与者对于他们所涉及的每个CLASSSCHEDULE都将具有不同的权限级别。
https://stackoverflow.com/questions/1934258
复制相似问题