0

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

但是,在选择多个模块并作为关系数据库设计时,我不确定如何将这些多个答案存储在学生选项表中,如下所示。

我目前有以下表格

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

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

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

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

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

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

我的模块表是否需要与学生选项表建立关系链接才能成为关系数据库?

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

谢谢

4

1 回答 1

2

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

解决问题的简单 ERM

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

  • 学生注册的课程应该只是学生表中的外键,因此给你一个一对多的关系(这是一个关键点,因为这意味着任何一个学生只能注册一个课程! 如果您的数据库必须能够让一名学生注册多个课程,那么您也需要一个多对多关系。)。
  • 模块应该通过中间表与学生相关联(在这种情况下我称之为 StudentModule),因此为您提供所需的多对多关系。您现在要做的当然是通过代码检查,如果学生尚未选择模块(以及所有其他大小细节......)。但据我所知,这与任何数据库设计都有关。
  • 如您所见,我还为模块插入了一个中间表来编程关系。这是因为我假设一个模块有资格参加多个项目。通过以这种方式将模块与程序相关联,您可以检查诸如“这个学生可以选择这个模块”之类的东西,......
于 2016-12-14T17:48:08.963 回答