在Microsoft Access数据库中存储模块选项表单的多选答案

时间:2016-12-14 16:50:27

标签: vba ms-access access-vba multiple-choice multiplechoicefield

我目前正在尝试研究如何为大学模块选项表单创建关系数据库。首先输入您的学生证,姓名,姓氏,然后选择您的学位课程,例如然后,人力资源管理使用复选框通过表单选择多个模块,直到选择每个学期的每个学期的总学分。

然而,在选择多个模块和作为关系数据库设计时,我不确定如何在Student Options表中存储这些多个答案,如下所示。

我目前有

的表格

表:学生 字段名称: 学生证(主键) 名称 姓

表:程序 程序(主键) 第一学期学分(不同课程允许不同学分) 第二学期学分(不同的课程允许不同的学分)

表:模块 模块ID(主键) 模块名称 积分 先决条件

最后一张表是我正在努力解决的问题,因为从表格中选择模块后,这些表格将存储在此表格中并且目前有这个...

表:学生选项 学生证(主键) 程序(链接到程序表)

但是我不确定哪些字段必须存储它们而不会太杂乱,并且仍然有一个指向模块表的链接,如下所示,它们都是单独存储的。

我的模块表是否需要将学生选项表的关系链接作为关系数据库?

如何将选择的多个模块存储到学生选项表单中?

由于

1 个答案:

答案 0 :(得分:2)

至于你的核心问题,我认为下面列出的数据库设计应该足够了:

A simple ERM solving the problem

您不应该同时存储学生选择的模块和他在同一个表中注册的程序。而是像上面概述的那样做。

  • 学生注册的课程应该只是学生表中的外键,因此会给你一对多的关系(这是一个关键点,因为这意味着任何一个学生只能注册在一个程序中!如果您的数据库必须能够让一个学生注册多个程序,那么您也需要多对多的关系。)。
  • 模块应该通过中间表(在本例中我称之为StudentModule)与学生相关,因此为您提供所需的多对多关系。你现在要做的当然是通过代码检查,如果模块已经没有被学生选中(以及所有其他的小细节和大细节......)。但据我所知,这与任何数据库设计都有关。
  • 如您所见,我还为模块插入了一个中间表来编程关系。这是因为我假设一个模块有资格使用多个程序。通过以这种方式将模块与程序相关联,您可以检查诸如此类的东西;这个学生可以选择这个模块",...