这是情况:-

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

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

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

我已经尝试过了,但是我想出的任何解决方案似乎都很混乱。

我将不胜感激。

谢谢

菲尔

最佳答案

您是否尝试过以下方法?

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

  • Tutor_ID
  • Student_ID

  • 两列均应为(复合)主键,每列均应为UsersUser_ID的外键(我想这就是您的全部)。

    因此,如果您有一位名叫牛顿的老师,有两个学生,特斯拉和爱迪生,那么您的Users表将具有以下内容:
  • 用户名,名称
  • 1,牛顿
  • 2,特斯拉
  • 3,爱迪生

  • 并且您的TutorStudent表将具有以下值:
  • 老师ID,学生ID
  • 1,2
  • 1,3

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

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

    关于sql - 在同一张 table 上一对多的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25501698/

    10-11 07:57