Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 教师有2个教学科目_Mysql_Sql_Database - Fatal编程技术网

Mysql 教师有2个教学科目

Mysql 教师有2个教学科目,mysql,sql,database,Mysql,Sql,Database,桌子 我的问题是: Instructor ------------------------------------------------------ | id | firstname | lastname | subject_id | section_id | ------------------------------------------------------ 1 John Smith 1

桌子

我的问题是:

Instructor
    ------------------------------------------------------
    | id | firstname | lastname | subject_id | section_id |
    ------------------------------------------------------
       1    John        Smith        1             1

Subject
    -------------
    | id | name |
    -------------
      1  English
      2   Math

Section
    -------------
    | id | name |
    -------------
     1  Section A
结果:

SELECT ins.firstname, ins.lastname,sec.name as "Section Name", sub.name as "Subject"
    FROM instructor as ins
    JOIN section as sec
    JOIN subject as sub
    WHERE ins.section_id = sec.id AND ins.subject_id = sub.id AND ins.id =1
我的问题是,如果老师约翰·史密斯也教数学,我会怎么问?我需要添加新的主题id吗?有什么解决办法吗


谢谢,

您可以添加另一个表格,用于存储每位讲师的主题,例如

firstname   lastname    Section Name    Subject 
John    Smith            Section A  English

你现在拥有的是一对多的关系,一个讲师只能有一个科目,但任何科目都可以有多个讲师。您需要多对多关系,这意味着添加一个新表,其中仅包含
讲师id
主题id

CREATE TABLE Instructor
(
    ID INT,
    InstructorName VARCHAR(30),
    ..... -- other fields here
);

CREATE TABLE Subject
(
    ID INT,
    SubjectNameName VARCHAR(30),
    ..... -- other fields here
);

CREATE TABLE INSTRUCTOR_SUBJECT
(
    RecID INT,
    InstructorID INT,
    SubjectID INT,
    CONSTRAINT tc_pk PRIMARY KEY (RecID),
    CONSTRAINT tc_fk1 FOREIGN KEY (InstructorID) REFERENCES Instructor(ID),
    CONSTRAINT tc_fk2 FOREIGN KEY (SubjectID) REFERENCES Subject(ID)
);