访问db中的初学者。跟踪实体记录的关系

时间:2016-07-04 21:43:30

标签: ms-access relational-database

我正在尝试在访问中设置一个基本的学生数据库。我使用的主要表格是课程学生员工模块

只是为了澄清一下我的术语:

  • 我的课程实际上是一所大学。 (即经济学课程)
  • 我的模块是指每所大学的实际课程。 (即,经济学课程包括数学,统计学,计量经济学等模块。)。
  • 我的员工是老师。
  • 一个模块包括12个讲座。
  • 在特定学期(6个月期间)提供一个模块,A = 9月 - 2月和B = 3月 - 8月。一个模块只能在两个学期中的一个学期中提供。

我想要使用的关系是:

  1. 一门课程有很多学生。 (的 一个对多
  2. 课程有很多模块。 (的 一个对多
  3. 最多1名工作人员可以领导1门课程。我需要知道他领导这门课程的日期(mgrstartdate)。 (的 一到一个 ) 工作人员只有1个专业(即约翰史密斯是数学家) 工作人员可以具有许多资格(即“10年以前的经验”和“发表的文章”)
  4. 一名工作人员教授许多模块。 (的 一个对多
  5. 学生可以在许多模块中注册(承担)。 (的 许多对多 ) 在这种情况下,我需要知道注册日期和最终成绩(表现)。
  6. 学生可以参加许多课程。 (的 许多对多 ) 在这种情况下,我需要获得出勤日期,出勤率(是/否)和到达时间。 (到达时间是我跟踪出勤而非缺席的原因)
  7. 一个模块包括12个讲座。 (的 一个对多 ) 在特定学期(6个月期间)提供一个模块, A = 9月 - 2月和B = 3月 - 8月。一个模块只能在两个学期中的一个学期中提供。
  8. 所以这里遵循我的表格及其关系预览: Access Relationships preview

    它看起来像上面关系中描述的那样吗? 记录学生的表现,出勤率和到达时间是否有用? 我使用Lecture表来跟踪每个模块的日期/时间。是需要还是我可以将讲座表的所有属性都移到模块表中?

1 个答案:

答案 0 :(得分:0)

看起来对我很好。

  
      
  1. 一名工作人员教授许多模块。 (一到多)
  2.   

如果每个模块只能由一位老师教授,我会感到惊讶。难道这不是多对多的吗?

我会将Attends附加到Lecture而不是Module。然后你不再需要日期,可以将到达时间与l_time进行比较 虽然我怀疑那张桌子的实用性。真的有人会详细记录所有出席人数吗?

ModuleStaff多值字段中的缩进字段是?大多数人建议不要使用它们,例如Multivalued Fields a Good Idea?。最好将它们放入具有一对多关系的附加表中。