MySQL中用户组的最佳架构?

时间:2016-02-28 15:00:03

标签: mysql database-design

概述:

我正在尝试为英语教学网站创建一个用户组系统。

每个用户组都分配了一个教师帐户,最多可以有五个学生帐户。

为此,我们创建了三个表:'老师'学生'和'组'

我还有许多页面可以创建/查看/分配组,如下面的屏幕截图所示:

enter image description here

以下是我们表格的结构以及它们如何相互作用以确保学生和教师得到适当的分配:

enter image description here

1 - 首先我们创建一个组(+ New Group页面),将其添加到组表中,该组具有名称,唯一ID和从Teacher表中获取的唯一教师ID。

2 - 然后我们将最多五名学生加入该组(分配学生页面)。该学生被视为"在该组"因为在学生表上,组名和ID被添加到" group_name"和" group_id"列分别。

问题:

1 - 我的想法是正确的数据库架构和一般结构还是有一些我不知道的明显事情?

2 - 因为可以将单个教师分配到多个小组,所以我需要能够查看分配给单个教师的所有小组,我是否应该将所有小组添加到一个表中" td"通过将它们与一个breakspace连接起来,或者我应该为每个组分别设置一个行...下面的图片应该更好地解释它......

enter image description here

任何关于此事的智慧都将受到赞赏:-)。

2 个答案:

答案 0 :(得分:1)

1。)根据您的要求似乎是正确的。

你与老师有一对多的关系 - >小组然后 另一个与群体的一对多关系 - >学生

2。)我不知道你在这里问的是什么,这取决于你想要如何显示这些数据。看来你知道如何获取它......

答案 1 :(得分:1)

1)主要是......见2号。

2)不要将id连接成一个列:(。这是一个多对多关系,可以通过“中间表中的人”轻松解决。基本上你创建了一个表TeacherGroup使用列TeacherGroupIDTeacherIDGroupID现在您可以将同一位教师添加到多个群组。

然后,回答有关教师和小组的问题所需要的只是来自Teacher表上的GroupTeacherGroup表的简单连接。通过这种方式,您可以回答问题,例如这位教师或所有这些教师的小组。以及哪些教师在这个或这些小组中。