设计:自定义访问控制(根据某些标准限制页面访问)

时间:2010-10-19 03:19:48

标签: php ruby-on-rails database-design content-management-system acl

虽然我将使用Ruby on Rails,但这是关于建模数据库和为CMS设计自定义访问控制系统的最佳方法的一般性问题。所以语言/数据库无关紧要。我很乐意听取所有专家的意见。

我的问题: 我正在为当地大学开发在线教程系统的早期过程。这个想法是学生将能够在他们的主要课程材料旁边获得额外的帮助。

基础:    - 计划使用现有的CMS管理内容(基本上是网页)。

  • 内容按课程,主题,副主题等构建。

  • 注册学生可以登录并查看相关内容(因此只能查看他们注册的课程资料)。

  • 当学生关注内容时,他/她需要做一些练习。

  • 有些导师会检查学生的进度,并在必要时提供进一步的帮助。 因此,运动结果与学生记录一起存储,供导师复习。

  • 学生对练习的回答未评分,但提交时会提供答案。

  • 主要问题:有些教授希望强制学生在其余内容可用之前进行练习。其他教授希望设置内容块被释放的时间。或者它可以是两者的组合。

定时内容发布很容易。但我不知道如何建模和设计条件内容发布。在这种情况下,条件是学生的进步(完成练习)。

为了说明,我有这样的内容:

    1. Calculus
    - 1.1 Limits
     - 1.1.1 Basic principles 
     - 1.1.2 More basics (with exercise)
     - 1.1.3 Answers to previous questions
    - 1.2 Derivatives
      - 1.2.1 Intro
      - 1.2.2 Sample problems(with exercises)
      - 1.2.3 Answers
      - 1.2.3 More content ....
    - 1.9 More calculus
       - 1.9.3 Some other content that is available when all previous exercises are completed
    2. Physics
    3. Chem 

实施例: 只有在学生注册微积分课程后,才能获得微积分的内容。 1.1.3,1.2等的内容只有在1.1.2的练习完成后才能使用。所以这是一种链式反应。

因为你可以看到有一些结构,但主要是很多依赖。 所以我想知道在数据库中对此进行建模的适当方法是什么,以及如何为这样的系统设计访问控制。

有没有人遇到过类似的问题?任何想法,见解,参考都是最受欢迎的。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

您可以使用已经制作的系统来处理所有这些问题。 Moodle是一种流行的开源替代方案,您可以像常规CMS一样安装它,它可以处理课程和学生甚至测验。 Here是这些“学习管理系统”的列表,有些是免费的,有些则不是。