我有这个问题:
我有一个“学校”数据库,需要使用“主题”表引用“教师”表。
教师将指导多个科目。这就是问题所在。
教师表:
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)
Teachers
和Subjects
本身之间的关系成为潜在存储数据的地方。考虑到学科领域(学校),TeacherSubjects
表听起来可能是一个等待发生的Classes
表。您可以在其中放置有关类的给定实例的信息的地方,该类是具有老师和科目的业务实体。关于mysql - 1列的倍数外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39108825/