我有这个问题:

我有一个“学校”数据库,需要使用“主题”表引用“教师”表。

教师将指导多个科目。这就是问题所在。

教师表:


id_Teacher id_Subject
id_Course
名称

地址


等等

主题表:


id_Subject 名称


我总是在外键上使用1值。例如:

SELECT * FROM Teachers WHERE id_Subject = 1


但是现在我真的不知道该怎么办。

最佳答案

我认为您要描述的是所谓的“多对多”关系。它需要一个中间表来连接实体表,并且在许多情况下,中间表本身就是一个业务实体。

考虑例如:

Teachers
----------
ID
Name
etc.

Subjects
----------
ID
Name
etc.

TeacherSubjects
----------
ID
TeacherID (FK to Teachers)
SubjectID (FK to Subjects)


TeachersSubjects本身之间的关系成为潜在存储数据的地方。考虑到学科领域(学校),TeacherSubjects表听起来可能是一个等待发生的Classes表。您可以在其中放置有关类的给定实例的信息的地方,该类是具有老师和科目的业务实体。

关于mysql - 1列的倍数外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39108825/

10-12 07:17