首页 > 解决方案 > 彼此之间的数据库关系(用户和组)

问题描述

我在学校做一个辅导项目,同时使数据库在设计获取数据库中组、用户和组的导师之间关系的最佳方法时遇到了麻烦。

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

我想这样做的方式是在我的用户表中添加一个外键,所以我的学生用户属于一个组,每个“组”都有一个导师,所以我需要在“用户”中添加一个外键“组”表,但我不确定这是否是最好的方法。

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

标签: mysqldatabasedatabase-designdata-modeling

解决方案


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

创建一个表“GroupTable”,其中包含“GroupID”(PrimaryKey)、“GroupName”、“TutorID”(ForeignKey 和 Users 表)列。

创建一个表“StudentGroupMapping”,其中包含“StudentID”(带有用户的外键)、“GroupID”(带有 GroupTable 的外键)列。该表的主键可以是(StudentID,GroupID)的复合主键。有了这个,我们可以让一个学生属于多个组。

我们需要注意的完整性是标记为 Tutor 的用户不会进入 Student。


推荐阅读