关系数据库 - 访问数据库的初学者.用于跟踪实体记录的关系



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

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

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

我想使用的关系是:

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

因此,以下是我的表及其关系预览:访问关系预览

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

对我来说

看起来大多不错。

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

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

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

ModuleStaff字段中的缩进字段是多值字段吗?大多数人建议不要使用它们,例如多值字段是个好主意?最好将它们放入具有一对多关系的其他表中。

相关内容

最新更新