在同一张桌子上一对多的关系

Phi*_*ill 4 sql database database-design erd

这是情况:-

我有一个名为“用户”的表。由于所需的大多数数据都是相同的,因此它包含学生和导师的用户数据。

完成该系统后,现在我被告知客户希望能够将学生分配给导师。

是否可以通过链接表在单个表内创建一对多关系的合法/干净方法?

我尝试着仔细考虑一下,但是我想出的任何解决方案似乎都很混乱。

我将不胜感激。

谢谢

菲尔

dar*_*ioo 5

您是否尝试过以下方法?

例如,创建一个新表TutorStudent(如果需要,请选择一个更合适的名称)。它应该有两列:

  • Tutor_ID
  • Student_ID

两列均应为(复合)主键,每列均应为Users表的外键User_ID(我想这就是您的表)。

因此,如果您有一位名叫牛顿的导师,有两个学生,特斯拉爱迪生,那么您的Users桌子上将显示以下内容:

  • 用户名,名称
  • 1,牛顿
  • 2,特斯拉
  • 3,爱迪生

并且您的TutorStudent表将具有以下值:

  • Tutor_ID,Student_ID
  • 一二
  • 一三

比较简单,不需要对现有表进行任何修改。

删除用户时要当心-使用数据库系统的删除级联功能或事后进行一些维护工作,以使TutorStudent表在更新/删除用户时不会过时。