彼此之间的数据库关系(用户和组)

时间:2019-01-28 06:57:16

标签: mysql database database-design data-modeling

我正在做一个学校补习项目,同时使数据库难以确定在数据库中获得小组,用户和小组导师之间关系的最佳方法。

我有学生,老师,导师,保存在“用户”表中 一组有很多学生,但只有一名导师。

我想到的方法是在我的用户表中添加一个外键,因此我的学生用户属于一个组,并且每个“组”都有一名导师,因此我需要在“用户访问“组”表中,但是我不确定这是否是最好的方法。

所以我要问一些建议,谢谢阅读

2 个答案:

答案 0 :(得分:0)

是的。可以在GroupTable中添加TutorID。

使用表“ GroupID”(PrimaryKey),“ GroupName”,“ TutorID”(“ ForesignKey with Users”表)创建表“ GroupTable”。

创建一个具有“ StudentID”(带用户的外键),“ GroupID”(带GroupTable的外键)列的表“ StudentGroupMapping”。该表的主键可以是(StudentID,GroupID)的复合主键。这样,我们可以使学生属于多个组。

我们需要注意的完整性是标记为“家教”的用户不会进入学生。

答案 1 :(得分:0)

因此,总共应该有以下三个表。第三个表将充当桥接表。

  • 用户
  • GroupUserRelation

用户:

  • user_id(PK)
  • 用户名
  • 角色(即学生,老师,家庭教师)

组:

  • group_id(PK)
  • user_id(FK)(即tutor_id)
  • group_name
  • group_timings

GroupUserRelation:

  • group_id(FK)
  • 用户ID(FK)(即学生ID)

group_id和user_id将合并为一个组合键。

这样,如果将来需要的话,您可以定义学生与导师之间的多对多关系。例如,一名导师可以教很多小组,一个学生也可以报名参加许多小组。