我正在使用 mysql 并遇到了一些困惑。我创建了两个表 academy
和 courses
。我需要帮助来确定如何构建表字段。例如 one to many
模式。一个学院可以提供很多类(class),一个类(class)可以与许多学院一起提供。下表的结构是否正确?
create table academy
(
academy_id int(11) not null auto_increment,
course_id int() NOT NULL ,
name varchar(25) not null,
primary key (id),
);
CREATE TABLE course
(
course_id int(11) not null auto_increment,
course_name VARCHAR(50) NOT NULL ,
primary key (course_id),
foreign key (academy_id) REFERENCES academy (academy_id) on delete cascade
);
期望结果的例子
id Name Course
1 The Alamo School 125 Intro to Programming
2 Bearcat High School 125 Intro to Programming
最佳答案
您真正需要的是学院表、类(class)表和可以存储多对多关系的关系表。我将查询留给您以获得您正在寻找的结果:)
CREATE TABLE academy
(
academy_id int(11) not null auto_increment,
name varchar(25) not null,
primary key (id),
);
CREATE TABLE course
(
course_id int(11) not null auto_increment,
course_name VARCHAR(50) NOT NULL ,
primary key (course_id),
);
CREATE TABLE accademy_course
(
academy_id int(11) not null,
course_id int(11) not null ,
primary key (academy_id, course_id),
foreign key (academy_id) REFERENCES academy (academy_id) on delete cascade,
foreign key (course_id) REFERENCES course (course_id) on delete cascade
);
关于mysql - 一对多/多对多 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871237/